Eindeutige Zufallszahlen innerhalb einer Schleife in C generieren
Beim Durchlaufen einer Reihe von Iterationen kann es wünschenswert sein, unterschiedliche Zufallszahlen zu generieren jedes Mal, wenn die Schleife ausgeführt wird. Die Verwendung des Standard-Zufallszahlengenerators in C (srand) innerhalb der Schleife kann jedoch dazu führen, dass dieselbe Zahl wiederholt generiert wird.
Zufallszahlen-Initialisierung zurücksetzen
Zu vermeiden Um dieses Problem zu beheben und die Generierung eindeutiger Zufallszahlen sicherzustellen, ist es wichtig, den Startwert des Zufallszahlengenerators mithilfe von srand() zurückzusetzen. Diese Funktion verwendet eine Ganzzahl als Argument und initialisiert beim Aufruf den internen Status des Zufallszahlengenerators.
Implementierung
Hier ist ein Beispiel, das zeigt, wie das geht Erzeuge eindeutige Zufallszahlen innerhalb einer Schleife:
#include <iostream> #include <cstdlib> #include <ctime> int main() { srand(time(NULL)); // Initialize the random number generator once // Execute the loop 10 times and generate a different random number each time for (int t = 0; t < 10; t++) { int random_x = rand() % 100; std::cout << "\nRandom X = " << random_x << std::endl; } return 0; }
Wie es geht Funktioniert
In diesem Beispiel verwenden wir die Funktion time(NULL), um einen Startwert basierend auf der aktuellen Zeit zu generieren. Dadurch wird sichergestellt, dass der Startwert bei jeder Programmausführung unterschiedlich ist. Indem wir den Startwert mit srand() einmal außerhalb der Schleife setzen, garantieren wir, dass der Zufallszahlengenerator einen eindeutigen Zahlenstrom erzeugt.
Zufallszahleninitialisierung zurücksetzen
Die Funktion srand() setzt außerdem den Zufallszahlengenerator auf seinen Ausgangszustand zurück und verwirft alle vorherigen Startwerte. Das bedeutet, dass nachfolgende Aufrufe von rand() eine neue Zahlenfolge basierend auf dem neu gesetzten Startwert generieren.
Das obige ist der detaillierte Inhalt vonWie generiert man eindeutige Zufallszahlen in einer C-Schleife?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!