Heim  >  Artikel  >  Java  >  Warum gibt mein Java-Zufallszahlengenerator trotz der Festlegung eines Startwerts immer dieselbe Zahl zurück?

Warum gibt mein Java-Zufallszahlengenerator trotz der Festlegung eines Startwerts immer dieselbe Zahl zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-07 07:11:02616Durchsuche

Why Does My Java Random Number Generator Always Return the Same Number Despite Setting a Seed?

Java-Zufallszahlengenerator gibt trotz Startwert immer dieselbe Zahl zurück

Im bereitgestellten Java-Code ist der Zufallszahlengenerator trotz der Festlegung eines Startwerts konsistent ergibt die gleiche Zahl. Das Problem tritt auf, wenn für jeden Methodenaufruf ein neues Random-Objekt erstellt wird. Dadurch wird sichergestellt, dass jedes Mal ein neuer Startwert generiert wird, was zur Wiederholung von Zufallszahlen führt.

Um dieses Problem zu lösen, ist es wichtig, eine einzige Zufallsinstanz in der gesamten Klasse gemeinsam zu nutzen. Durch die Einbeziehung dieser Änderung stellen wir sicher, dass der Startwert nur einmal gesetzt wird, was zu einer Folge von echten Zufallszahlen führt.

public class Numbers {
    // Shared Random instance
    private Random randnum = new Random();

    public int random(int i) {
        randnum.setSeed(123456789);
        return randnum.nextInt(i);
    }
}

Mit dieser Änderung geben nachfolgende Aufrufe der Zufallsmethode unterschiedliche Zahlen zurück, die eingehalten werden die Einschränkungen, die ein fester Startwert mit sich bringt.

Das obige ist der detaillierte Inhalt vonWarum gibt mein Java-Zufallszahlengenerator trotz der Festlegung eines Startwerts immer dieselbe Zahl zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:Laufende Summe des ArraysNächster Artikel:Laufende Summe des Arrays