Ich habe ein bisschen Probleme mit einem Teil meines Codes. Wir haben einen Zufallsgenerator innerhalb einer Schleife, der 1.000.000 Zufallszahlen generiert. Danach müssen wir einen Zähler haben, der den längsten Streifen von Evens und Odds zählt und ihn mit 1/37 * (n-1) (Anzahl der erwarteten Wiederholungen) und (1/37)^2 * (n-1) vergleicht) (Anzahl der erwarteten drei Wiederholungen). Wir haben Arrays nicht gelernt, also erwartet er, dass wir die Aufgabe ohne Arrays abschließen. Es scheint, Streifen richtig zu erzeugen, jedoch sind meine Zahlen konsistent hoch, wenn Sie näher schauen (zum Beispiel erzeuge ich einen Streifen von 29, wenn der erwartete Streifen pro Formel 19 ist). Wenn der Generator wirklich zufällig ist, sollte er näher an der erwarteten Zahl liegen. Ich habe meinen Code unten zur Verfügung gestellt:Roulette-Rad - Zählen gerade/ungerade Streifen ohne Array
for(int i = 1; i <= 1000000; i++) {
int randomNumber = gen.nextInt(37);
wheel.setNumber(randomNumber);
String numberColor = wheel.getColor();
//COUNTS THE LONGEST STRING OF EVENS
if ((lastNum % 2 == 0) && (randomNumber % 2 == 0) && randomNumber != 0 && lastNum != 0) {
tempEven++;
tempOdd = 1;
} else {
if (tempEven > longestEven) {
longestEven = tempEven;
tempEven = 1;
}
}
//COUNTS THE LONGEST STRING OF ODDS
if ((lastNum % 2 == 1) && (randomNumber % 2 == 1) && randomNumber != 0 && lastNum != 0) {
tempOdd++;
tempEven = 1;
} else {
if (tempOdd > longestOdd) {
longestOdd = tempOdd;
tempOdd = 1;
}
}
}
Wenn jemand meinen Code überprüfen und sicherstellen könnte, dass meine Logik korrekt ist, würde ich es wirklich schätzen.
wo wird lastNum deklariert? und wie wird es aktualisiert? Oder brauchen Sie Hilfe? –
lastNum wird oben (hier nicht sichtbar) beginnend bei 1 initialisiert. Ich bin mir nicht ganz sicher, wo ich mit meiner Logik falsch liege. – user6014700
Sehen Sie meine Antwort, weil es scheint, als würden Sie den Streifen nicht in allen Fällen zurücksetzen. Zum Beispiel, wenn es "gerade, gerade, gerade, ungerade, gerade" geht, wird tempEven nach dieser Iteration 4 sein, wenn es von 3 auf 1 hätte zurückgesetzt werden sollen. –