„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 > Warum sind meine Zufallszahlen innerhalb von Schleifeniterationen gleich?

Warum sind meine Zufallszahlen innerhalb von Schleifeniterationen gleich?

Veröffentlicht am 12.11.2024
Durchsuche:642

Why are My Random Numbers the Same Within Loop Iterations?

Gleiche Zufallszahlen in Schleifeniterationen

In Ihrer Schleife, die 15 Mal ausgeführt wird, haben Sie in jeder Iteration dh.setDoors() aufgerufen. Innerhalb dieser Funktion wird srand(time(0)) aufgerufen, um die Generierung von Pseudozufallszahlen zu initiieren. Nachfolgende Aufrufe von rand() innerhalb der Schleife führen jedoch in allen 15 Iterationen zu konstanten Werten von carSetter und Decider.

Dieses Verhalten tritt auf, weil srand(time(0)) den Startwert für den Zufallszahlengenerator basierend festlegt zur aktuellen Zeit. Da die Schleife schnell ausgeführt wird, gibt time(0) jedes Mal denselben Wert zurück, was zu derselben Folge von Pseudozufallszahlen führt.

Um dieses Problem zu beheben, wird empfohlen, nur srand(time(0) aufzurufen )) einmal zu Beginn des Programms, normalerweise nach einem Prozess wie:

srand(time(0));

for (int i = 0; i 

Indem diese Initialisierung nur einmal durchgeführt wird, generiert der Pseudozufallszahlengenerator für jede Iteration der Schleife eine eindeutige Zahlenfolge, die die erwartete Variation in den Werten von carSetter und Decider ergibt.

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