Maison >développement back-end >C++ >Comment éviter de répéter des nombres aléatoires dans une boucle C ?

Comment éviter de répéter des nombres aléatoires dans une boucle C ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-21 06:49:10953parcourir

How to Avoid Repeating Random Numbers in a C   Loop?

Comment générer des nombres aléatoires vraiment uniques dans une boucle C

Dans ce code, vous essayez de générer un nombre aléatoire différent avec chaque boucle itération :

for (int t = 0; t<10; t++)
{
    int random_x;
    srand(time(NULL));
    random_x = rand() % 100;
    cout << "\nRandom X = " << random_x;
}

Cependant, le problème est que vous appelez srand() plusieurs fois dans la boucle. Cela initialise le générateur de nombres aléatoires (RNG) à chaque fois avec la même valeur de départ, ce qui donne la même séquence de nombres aléatoires.

Pour générer des nombres aléatoires vraiment uniques dans une boucle, vous devez suivre ces étapes :

  1. Initialisez le RNG une fois, en dehors de la boucle. Cela garantit qu'une nouvelle valeur de départ est utilisée à chaque fois que vous exécutez le boucle.
srand(time(NULL)); // Initialize RNG outside of loop
  1. Déplacez la génération de nombres aléatoires à l'intérieur de la boucle. Remplacez l'appel srand() par rand(). Cela générera un nouveau nombre aléatoire pour chaque itération.
random_x = rand() % 100;
  1. Concernant la réinitialisation du RNG, appeler srand() avec une nouvelle valeur de départ réinitialisera le RNG initialisation. Vous pouvez le faire à l'intérieur de la boucle ou à tout moment de votre programme où vous devez réinitialiser le RNG.

En suivant ces étapes, vous pouvez générer différents nombres aléatoires à chaque itération de votre boucle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn