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
Libérer: 2024-12-21 06:49:10
original
978 Les gens l'ont consulté

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;
}
Copier après la connexion

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
Copier après la connexion
  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;
Copier après la connexion
  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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal