Heim > Java > javaLernprogramm > Warum erzeugt mein Java-Zufallszahlengenerator immer die gleiche Ausgabe, wenn ich einen Startwert festlege?

Warum erzeugt mein Java-Zufallszahlengenerator immer die gleiche Ausgabe, wenn ich einen Startwert festlege?

Barbara Streisand
Freigeben: 2024-11-07 11:58:02
Original
919 Leute haben es durchsucht

Why Does My Java Random Number Generator Always Produce the Same Output When I Set a Seed?

Java-Zufallszahlengenerator: Warum immer die gleiche Ausgabe mit Set Seed?

In Java, wenn die Random-Klasse zum Generieren von Zufallszahlen verwendet wird , kommt es nicht selten vor, dass das Setzen eines Startwerts stets die gleiche Ausgabe liefert. Lassen Sie uns das Problem genauer untersuchen und eine effektive Lösung finden.

Betrachten Sie den folgenden Codeausschnitt:

public int random(int i){
    Random randnum = new Random();
    randnum.setSeed(123456789);
    return randnum.nextInt(i);
}
Nach dem Login kopieren

Bei mehrmaligem Aufruf aus einer anderen Klasse sollte diese Methode idealerweise unterschiedliche Zufallszahlen liefern. Beim Aufruf mit „numbers.random(10)“ wird jedoch immer das gleiche Ergebnis zurückgegeben, z. B. „5“.

Der Grund für dieses Verhalten liegt in der Erstellung einer neuen Random-Instanz innerhalb der Random-Methode. Jede neue Instanz verwendet einen anderen Seed-Generator, was zu einer vorhersehbaren Zahlenfolge führt. Um dies zu beheben, muss die Random-Instanz in der gesamten Klasse gemeinsam genutzt werden.

public class Numbers {
    Random randnum;

    public Numbers() {
        randnum = new Random();
        randnum.setSeed(123456789);
    }

    public int random(int i){
        return randnum.nextInt(i);
    }
}
Nach dem Login kopieren

Mit der gemeinsam genutzten Random-Instanz generieren nun mehrere Aufrufe der Random-Methode echte Zufallszahlen, selbst mit einem festgelegten Startwert . Der Startwert dient als Ausgangspunkt für den Zufallszahlengenerator und stellt die Konsistenz über mehrere Durchläufe hinweg sicher, während gleichzeitig das beabsichtigte Element der Zufälligkeit erhalten bleibt.

Das obige ist der detaillierte Inhalt vonWarum erzeugt mein Java-Zufallszahlengenerator immer die gleiche Ausgabe, wenn ich einen Startwert festlege?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage