Heim >Backend-Entwicklung >C++ >Wie generiert man eindeutige Zufallszahlen in einer C-Schleife?
Eindeutige Zufallszahlen innerhalb einer Schleife in C generieren
In C kann das Schreiben von Code zum Generieren von Zufallszahlen innerhalb einer Schleife manchmal zu unerwarteten Ergebnissen führen . Betrachten Sie den folgenden Codeausschnitt:
for (int t = 0; t < 10; t++) { int random_x; srand(time(NULL)); random_x = rand() % 100; cout << "\nRandom X = " << random_x; }
Das Problem bei diesem Code liegt in der wiederholten Verwendung von srand(time(NULL)) innerhalb der Schleife. Während srand() zum Initialisieren des Zufallszahlengenerators verwendet wird, führt ein mehrmaliger Aufruf während der Iteration zur Generierung derselben Folge von Zufallszahlen.
Um in jeder Iteration unterschiedliche Zufallszahlen zu generieren, srand( ) sollte nur einmal aufgerufen werden, vorzugsweise am Anfang des Programms. Dadurch wird sichergestellt, dass der Startwert für den Zufallszahlengenerator nur einmal festgelegt wird, wodurch der Startpunkt für jede Iteration effektiv „randomisiert“ wird.
int main() { srand(time(NULL)); for (int t = 0; t < 10; t++) { int random_x = rand() % 100; cout << "\nRandom X = " << random_x; } }
Darüber hinaus können Sie die Initialisierung der Zufallszahlen vollständig zurücksetzen, wenn Sie dies tun müssen Rufen Sie srand() erneut mit einem anderen Startwert auf. Dadurch wird eine neue Folge von Zufallszahlen generiert, die sich von der vorherigen unterscheidet.
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!