Heim > Backend-Entwicklung > Golang > Warum generiert mein Go-Code immer wieder dieselbe Zufallszahl?

Warum generiert mein Go-Code immer wieder dieselbe Zufallszahl?

Linda Hamilton
Freigeben: 2024-10-26 12:43:29
Original
789 Leute haben es durchsucht

Why Does My Go Code Keep Generating the Same Random Number?

Lösen der repetitiven Zufallszahlengenerierung in Go

In Go gibt die Funktion rand.Intn(n int) int eine pseudozufällige Ganzzahl zurück im Bereich [0, n). Es ist jedoch ein Problem aufgetreten, bei dem immer dieselbe Zahl ausgegeben wird.

Die Dokumentation legt nahe, dass rand.Intn die Standardquelle verwendet, die eine deterministische Folge von Werten generiert. Um das Verhalten anzupassen und Zufälligkeit sicherzustellen, müssen Sie die Zufallszahlengenerierung ordnungsgemäß starten.

Um den Zufallszahlengenerator zu starten, rufen Sie die Funktion rand.Seed(seed int64) auf. Diese Funktion initialisiert die Standardquelle mit einem Startwert. Eine gängige Praxis ist die Verwendung des aktuellen Unix-Zeitstempels:

<code class="go">rand.Seed(time.Now().UnixNano())</code>
Nach dem Login kopieren

Durch das Seeding des Generators stellen Sie sicher, dass jeder Lauf Ihres Programms unterschiedliche Zufallszahlen erzeugt.

Wenn rand.Seed() nicht aufgerufen wird, verhält sich der Generator so, als wäre er mit 1 gesät, was zur beobachteten Wiederholung führt.

Das obige ist der detaillierte Inhalt vonWarum generiert mein Go-Code immer wieder dieselbe Zufallszahl?. 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