Heim > Java > javaLernprogramm > Hauptteil

Warum scheinen meine Zufallszahlen in Java jedes Mal gleich zu sein?

Patricia Arquette
Freigeben: 2024-11-09 13:41:02
Original
912 Leute haben es durchsucht

Why Do My Random Numbers in Java Seem to Be the Same Every Time?

Zufallszahlen mithilfe von Seeds in Java verstehen

In Java wird ein Seed verwendet, um eine Zufallsinstanz zu initialisieren und eine Folge von Pseudozufallszahlen zu generieren . Wenn derselbe Startwert bereitgestellt wird, erzeugt die Random-Instanz dieselbe Zahlenfolge.

Warum sind meine Zufallszahlen jedes Mal gleich?

Im bereitgestellten Code:

double num = generator.nextDouble() * (0.5);
Nach dem Login kopieren

Sie verwenden für jeden Aufruf von randomGenerator denselben Startwert, was zu derselben Zufallssequenz führt Zahlen.

So beheben Sie das Problem

So generieren Sie verschiedene Folgen von Zufallszahlen mit einem Startwert:

  1. Verwenden Sie verschiedene Startwerte : Geben Sie bei jedem Aufruf von randomGenerator einen anderen Startwert als Argument für den Random-Konstruktor an. Dadurch werden mehrere Zufallsinstanzen mit jeweils einem eindeutigen Startwert erstellt.
  2. Verwenden Sie den Standard-Startwert: Wenn Sie denselben Startwert über mehrere Aufrufe hinweg verwenden möchten, initialisieren Sie eine einzelne Zufallsinstanz außerhalb von randomGenerator-Methode mit dem Null-Argument-Konstruktor, der die aktuelle Zeit als verwendet Seed.

Beispiel:

private Random generator = new Random(); // outside randomGenerator
double randomGenerator() {
    return generator.nextDouble() * (0.5); // inside randomGenerator
}
Nach dem Login kopieren

Pseudozufallszahlengenerierung

Pseudozufallszahlengeneratoren (PRNGs) generieren Sequenzen, die zufällig erscheinen, aber sind deterministisch und haben einen Anfangswert. Wenn derselbe Seed verwendet wird, erzeugt der PRNG dieselbe Sequenz.

Das obige ist der detaillierte Inhalt vonWarum scheinen meine Zufallszahlen in Java jedes Mal gleich zu sein?. 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