zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Nein. Wir können einen Zufallszahlengenerator verwenden, um beide Würfel zu simulieren. Wir verwenden ihn einmal für den einen Würfel und dann wieder für den anderen Würfel.

Zwei-Würfel Gotcha!

Tatsächlich müssen wir vorsichtig sein, wenn wir zwei Zufallszahlengeneratoren verwenden. Der folgende Code:

Random rand1 = new Random();
Random rand2 = new Random();

wird zwei Zufallszahlengeneratoren erzeugen, die höchstwahrscheinlich mit dem gleichen Startwert initialisiert sind. Jeder Generator wird dann die gleiche Abfolge von Pseudo-Zufallszahlen erzeugen. Das ist nicht das, was Sie wollen.

Der Grund, warum das passiert, ist, dass Random() einen Startwert verwendet, der auf der aktuellen Zeit in Millisekunden basiert. Aber die aktuelle Zeit ändert sich kaum zwischen der Ausführung der beiden Anweisungen. Wir könnten den zweiten Zufallszahlengenerator initialisieren, indem wir eine Zufallszahl des ersten verwenden, aber es ist zweckmäßiger nur einen Zufallszahlengenerator zu verwenden.

Das zweimalige Werfen eines Würfels und die Addition der Ergebnisse ist äquivalent zum Werfen zweier Würfel und der Addition der beiden Würfel. Aber, das Werfen eines 12-seitigen Würfels ist nicht äquivalent zum Werfen von zwei 6-seitigen Würfeln.

FRAGE 8:

Werden wir jemals mehr als einen Zufallszahlengenerator brauchen?