„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Tipps zum Generieren echter Zufallszahlen im GO -Sprach -Rand -Paket

Tipps zum Generieren echter Zufallszahlen im GO -Sprach -Rand -Paket

Gepostet am 2025-04-14
Durchsuche:177

How to Generate Truly Random Numbers with Go's Rand Package?

Fehlerbehebung bei Pseudo -Zufallszahlengeneration in dem Rand -Paket

Frage:

Das Rand -Paket in GO bietet die Int31n -Funktion, um Pseudo -Nummern zu erzeugen, aber es scheinen dieselbe Ausgabe zu ergeben. Gibt es eine Möglichkeit, jedes Mal, wenn die Funktion aufgerufen wird, wirklich zufällige Ergebnisse zu erhalten? Jedes Mal, wenn das Programm ausgeführt wird, erzeugt das PRNG die gleiche Abfolge von Zahlen, die auf einem festen Anfangswert basieren, der als "Seed" bezeichnet wird. Ein gemeinsamer Ansatz ist die Verwendung der aktuellen Zeit in Nanosekunden, die sich jedes Mal ändert, wenn das Programm ausgeführt wird. Dies kann mit dem folgenden Code erfolgen:

importieren "Zeit" func main () { Rand.seed (time.now (). unixnano ()) fmt.println (rand.int31n (100)) }

Alternativ bietet das Crypto/Rand -Paket eine sichere Quelle der Zufälligkeit. Es enthält Entropie aus verschiedenen Systemquellen wie Mausbewegungen, Prozessortemperatur und Tastatureingang. Die Leistung kann jedoch langsamer sein als das Rand -Paket.

Wenn Sie ein einzigartiges Saatgut festlegen oder das Krypto/Rand -Paket verwenden, können Sie sicherstellen, dass die Funktion rand.int31n jedes Mal, wenn sie aufgerufen wird, wirklich zufällige Zahlen generiert.

.

Neuestes Tutorial Mehr>

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