Hey,
ich bräuchte mal wieder eure Hilfe.
also die Aufgabenstellung lautet:
"Es ist eine Java-Methode zu erstellen, die Pseudozufallszahlen aus dem Intervall (A,B) nach dem multiplikativen Kongruenzverfahren zi+1 = fakt * zi % m erzeugt.
Nach der obigen Vorschrift sind (m = 1) sind Pseudozufallszahlen aus dem Intervall [0,1) zu erzeugen, die dann nach y = A + (B-A) * z in das Intervall (A,B) transformiert werden.
Als Parameter werden übergeben:
* die Intervallgrenzen A und B
* der Faktor fakt >1
* der Anfangswert z0 < 1
Es ist eine Folge von 10 Zahlen zu erzeugen. Diese sind nacheinander durch Komma getrennt in einen String zu schreiben, der als Ergebnis zurückzugeben ist. Wichtig: Es dürfen keine weiteren Leerzeichen oder sonstige Zeichen im String enthalten sein. Hinter der letzten Zahl folgt wieder ein Komma (es muss da also kein Sonderfall beachtet werden). "
Mein Problem ist jetzt, dass ich nicht erkennen kann, was die erste Formel machen soll und was die zweite. Also die erste ist wohl dieses Kongruenzverfahren, aber kommt da nicht immer 0 raus? (weil das Ergebnis soll ja nur im Intervall [0,1] sein) und wie kann das dann durch die zweite Formel in meinem festgelegten Intervall überführt werden?
das zweite Problem ist die Rückgabe dieses Strings. Ich dachte, das macht man mit ". Jetzt hab ich aber schon alles mögliche ausprobiert und es kommt entweder ") expected" oder es gibt eben wortwörtlich das wieder, was innerhalb der Anführungszeichen steht (was prinzipiell ja richtig ist, aber sobald ich da eine Variable einbauen will, kommt eine Fehlermeldung).
Das hab ich bis jetzt, was nicht wirklich viel ist.
also vielleicht könnte mir jemand wenigstens die Aufgabenstellung erklären?! vielen Dank.
PS: der Methodenname ist vorgegeben und nicht veränderbar.
ich bräuchte mal wieder eure Hilfe.
also die Aufgabenstellung lautet:
"Es ist eine Java-Methode zu erstellen, die Pseudozufallszahlen aus dem Intervall (A,B) nach dem multiplikativen Kongruenzverfahren zi+1 = fakt * zi % m erzeugt.
Nach der obigen Vorschrift sind (m = 1) sind Pseudozufallszahlen aus dem Intervall [0,1) zu erzeugen, die dann nach y = A + (B-A) * z in das Intervall (A,B) transformiert werden.
Als Parameter werden übergeben:
* die Intervallgrenzen A und B
* der Faktor fakt >1
* der Anfangswert z0 < 1
Es ist eine Folge von 10 Zahlen zu erzeugen. Diese sind nacheinander durch Komma getrennt in einen String zu schreiben, der als Ergebnis zurückzugeben ist. Wichtig: Es dürfen keine weiteren Leerzeichen oder sonstige Zeichen im String enthalten sein. Hinter der letzten Zahl folgt wieder ein Komma (es muss da also kein Sonderfall beachtet werden). "
Mein Problem ist jetzt, dass ich nicht erkennen kann, was die erste Formel machen soll und was die zweite. Also die erste ist wohl dieses Kongruenzverfahren, aber kommt da nicht immer 0 raus? (weil das Ergebnis soll ja nur im Intervall [0,1] sein) und wie kann das dann durch die zweite Formel in meinem festgelegten Intervall überführt werden?
das zweite Problem ist die Rückgabe dieses Strings. Ich dachte, das macht man mit ". Jetzt hab ich aber schon alles mögliche ausprobiert und es kommt entweder ") expected" oder es gibt eben wortwörtlich das wieder, was innerhalb der Anführungszeichen steht (was prinzipiell ja richtig ist, aber sobald ich da eine Variable einbauen will, kommt eine Fehlermeldung).
Das hab ich bis jetzt, was nicht wirklich viel ist.
Java:
public class Zufall
{
/**
* Zufallszahlenerzeugung nach dem multiplikativen Kongruenzverfahren
*
* @param a, b, fakt, z0 Intervallgrenzen, Faktor, Anfangswert
* @return mit Mittelwert der Zufallszahlen
*/
public String multiplikativesKongruenzverfahren(int a, int b, double fakt,double awert)
{
double i = 0; //für for-schleife
double m = 1; //vorgegeben?!
double zi = 0; //entspricht zi = 0, da Intervall nur 0 und 1?!
double zi2 = 1; //entspricht zi+1 = 1, da Intervall nur 0 und 1?!
double y = 0; //Zufallszahl
zi2 = fakt * zi % m; //da zi = 0, ist zi2 nicht immer 0? zi = ((fakt * zi2)) % m (wikip)
for (i = awert; i < 11; i++) //da ja 10 Zahlen ausgegeben werden sollen
{
y = a + (b-a) * zi2;
return y; //fehlermeldung: found double but expected java.lang.String
}
return ",,,"; //wie gibt man einen String zurück?
}
}
also vielleicht könnte mir jemand wenigstens die Aufgabenstellung erklären?! vielen Dank.
PS: der Methodenname ist vorgegeben und nicht veränderbar.