„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum erhalte ich identische Zufallszahlen, wenn ich in Java denselben Startwert verwende?

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

Veröffentlicht am 09.11.2024
Durchsuche:294

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 Zahlenfolge führt. Ein Startwert ist ein Startwert, der den Zufallszahlengenerator initialisiert. Dies ist eine wichtige Funktion zum Testen, da sie bei der Wiederholung von Tests konsistente Ergebnisse 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 Sequenz 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 bei jedem Aufruf der randomGenerator-Methode unterschiedliche Folgen von Zufallszahlen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3