Heim > Backend-Entwicklung > C++ > Wie generiert man eindeutige Zufallszahlen in einer C-Schleife?

Wie generiert man eindeutige Zufallszahlen in einer C-Schleife?

DDD
Freigeben: 2024-12-09 17:20:12
Original
877 Leute haben es durchsucht

How to Generate Distinct Random Numbers in a C   Loop?

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;
}
Nach dem Login kopieren

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;
  }
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage