Java-Zufallszahlen mit festem Startwert: Warum identische Ausgaben?
In Ihrem Code haben Sie eine Methode zum Generieren von Zufallszahlen definiert ein bestimmter Samen. Sie bemerken jedoch, dass alle 100 generierten Zahlen identisch sind, wenn Sie denselben Startwert angeben.
Dieses Verhalten ist zu erwarten, da die Verwendung desselben Startwerts im Zufallskonstruktor zu einer vorhersehbaren Folge von Zahlen führt. Ein Startwert ist ein Startwert, der den Zufallszahlengenerator initialisiert. Dies ist eine wichtige Funktion zum Testen, da sie konsistente Ergebnisse bei der Wiederholung von Tests ermöglicht.
Generierung von Pseudozufallszahlen verstehen
Pseudozufallszahlengeneratoren (PRNGs) wie Random in Java Generieren Sie Sequenzen, die der echten Zufälligkeit nahe kommen. Sie verfügen jedoch über einen kleinen Satz von Anfangswerten, einschließlich des Startwerts, der die Reihenfolge vollständig bestimmt.
Den Code korrigieren
Um verschiedene Folgen von Zufallszahlen zu generieren, Sie sollten vermeiden, jedes Mal dasselbe Saatgut zu verwenden. Erstellen Sie stattdessen eine Random-Instanz außerhalb Ihrer Methode und initialisieren Sie sie ohne Argumente. Diese Instanz verwendet die nanoTime-Methode, um einen eindeutigen Startwert zu generieren.
Hier ist der korrigierte Code:
private Random generator = new Random(); double randomGenerator() { return generator.nextDouble() * 0.5; }
Mit dieser Änderung erhalten Sie jedes Mal andere Folgen von Zufallszahlen Rufen Sie die randomGenerator-Methode auf.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich identische Zufallszahlen, wenn ich in Java denselben Startwert verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!