Probleme bei der Generierung von Zufallszahlen in Schleifen verstehen
Problem:
Ein häufiges Problem tritt auf, wenn Random.Next
innerhalb von Schleifen verwendet wird, um Zufallszahlen zu generieren. Wenn Sie für jede Iteration ein neues Random
-Objekt innerhalb der Schleife erstellen, werden Sie häufig wiederholte oder vorhersehbare „Zufallszahlen“ beobachten. Dies gilt insbesondere in schnell laufenden Schleifen.
Erklärung:
Die Ursache liegt in der Initialisierung des Random
-Objekts. Jede Random
-Instanz wird mithilfe der Systemuhr geseedet. Wenn innerhalb sehr kurzer Zeit mehrere Instanzen erstellt werden (wie es in Schleifen häufig der Fall ist), erhalten sie denselben Startwert. Dies führt dazu, dass jedes Random
-Objekt die identische Folge von Pseudozufallszahlen erzeugt.
Auflösung:
Die Lösung ist unkompliziert: Erstellen Sie ein einzelnes Random
Objekt außerhalb der Schleife und verwenden Sie es für alle Zufallszahlengenerierungen innerhalb der Schleife wieder. Dadurch wird sichergestellt, dass eine konsistente, aber unvorhersehbare Folge von Zufallszahlen generiert wird. Übergeben Sie diese einzelne Random
-Instanz nach Bedarf an alle Methoden, die Zufallszahlen erfordern.
Das obige ist der detaillierte Inhalt vonWarum erzeugt Random.Next sich wiederholende Werte in einer Schleife?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!