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.
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