Algorytm który wyznacza pare liczb (x,y)

0

"Napisz algorytm, który wyznacza taką parę liczb (x,y), dla których funkcja f(x,y)=Sin(x+y) osiąga maximum,przy czym liczby x,y należą do zbioru {1...10}."

Czy ktoś mi może wytłumaczyć o co chodzi w tym zadaniu bo nie za bardzo rozumie?

0

Ale kto nie rozumie zadania?
Dla każdej pary liczb całkowitych x, y takich, że 1<=x,y<=10 (jest 100 możliwości) masz obliczyć sin(x+y) i wśród otrzymanych 100 liczb masz znaleźć największą.

0

public class sin {
public static void main(String[] args) {
for(float x=1;x<=10;x++){

for(float y=1;y<=10;y++){
   if((Math.sin(x+y))>((Math.sin(x+y)-1))){
        System.out.println(Math.sin(x+y));
    }}

}

}

Napisałem coś takiego ,ale to nie dziala tak jak ma dzialać co mam poprawic?

0

Masz poprawić prawie wszystko . Dla jakich liczb nie zachodzi nierówność?

Math.sin(x+y)>Math.sin(x+y)-1
0

W tej chwili oprócz pętli to nie masz nic co ma związek z rozwiązaniem. De facto masz dla wszystkich możłiwych par liczb sprawdzić czy sin(x + y) ma wartość maksymalną i wypisać tę parę. Tych par liczb spełniających ten warunek może być więcej niż jedna (a na pewno będą przynajmniej dwie, bo przecież sin(1 + 2) == sin(2 + 1)). Więc musisz wyznaczyć zatem tę maksymalną wartość wyrażenia i podać/zapamiętać dla niej pary liczb dla których jest to spełnione.

0

Najpierw wyliczasz jaka liczba z zakresu 2-20 ma największą wartość sin() - wyjdzie ci 14 - wg mnie precomputing - to często stosowana technika.
Zostaje ci wyświetlić wszystkie pary suma których wynosi 14:

for(int x=1;x<14;++x) System.out.println(x+" "+(14-x));

jeżeli nie chcesz mieć (1,13) oraz (13,1) to zwyczajnie wystartuj w tej pętli od 7

0
_13th_Dragon napisał(a):

wyjdzie ci 14 - wg mnie precomputing - to często stosowana technika.

Co akurat w tym przypadku jest rozwiązaniem brzydkim i sztywnym, a podając jeszcze tak rozpisane rozwiązanie wątpię czy "edukacyjnie" poprawnym, zakładając, że miało go czegoś wiecej z programowania nauczyć. Nie chodzi o to konkretne rozwiązanie, ale o użyty algorytm, który trzeba przerabiać w momencie kiedy do zrobienia zostanie podana inna funkcja np. f(x,y)=cos(x+y).

1 użytkowników online, w tym zalogowanych: 0, gości: 1