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.
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