Heim > Java > javaLernprogramm > Hauptteil

Warum erhalte ich identische Zufallszahlen, wenn ich in Java denselben Startwert verwende?

DDD
Freigeben: 2024-11-09 14:53:02
Original
608 Leute haben es durchsucht

Why do I get identical random numbers when using the same seed in Java?

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;
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage