Partager : code C++ pour générer des nombres aléatoires

 

Cet article est une analyse détaillée et une introduction au code d'implémentation pour générer des nombres aléatoires en C++. Les amis dans le besoin peuvent s'y référer.

Comment générer des nombres aléatoires en C++ : Les fonctions rand() et srand() sont utilisées ici. Il n'y a pas de fonction aléatoire (nombre int) intégrée en C++.


(1)  Si vous souhaitez uniquement générer des nombres aléatoires sans définir de plage, vous pouvez simplement utiliser rand() : rand() renverra une valeur aléatoire, allant de 0 à RAND_MAX. La valeur RAND_MAX doit être au moins 32 767.
Par exemple:

le code s'affiche comme ci-dessous :

#include<stdio.h>
#include <iostream>
 
le code s'affiche comme ci-dessous :

int _tmain(int argc, _TCHAR* argv[])
{        for(int i=0;i<10;i++)              cout << rand() << endl; }



(2)  Si vous souhaitez générer aléatoirement un nombre dans une certaine plage,
par exemple : générer aléatoirement 10 nombres de 0 à 99 :
le code s'affiche comme ci-dessous :

#include<stdio.h>
#include <iostream>
 
le code s'affiche comme ci-dessous :

int _tmain(int argc, _TCHAR* argv[])
{      for(int x=0;x<10;x++)            cout << rand()%100 << " "); }



En bref, pour générer un nombre aléatoire compris entre a~b, vous pouvez utiliser :  a+rand()%(b-a+1)


(3) Cependant, lorsque les deux exemples ci-dessus sont exécutés plusieurs fois, les résultats de sortie sont toujours les mêmes que la première fois. L’avantage est que cela facilite le débogage, mais cela fait perdre la signification des nombres aléatoires. Si vous souhaitez générer des nombres aléatoires différents pour chaque exécution, vous utiliserez la fonction srand(). srand() est utilisé pour définir la valeur de départ du nombre aléatoire lorsque rand() génère des nombres aléatoires. Avant d'appeler la fonction rand() pour générer des nombres aléatoires, vous devez d'abord définir la graine de nombre aléatoire (seed) à l'aide de srand(). Si la graine de nombre aléatoire n'est pas définie, rand() définira automatiquement la graine de nombre aléatoire sur 1 lorsque on l'appelle. Les deux exemples ci-dessus sont dus au fait que la graine de nombre aléatoire n'est pas définie et que la graine de nombre aléatoire est automatiquement définie sur la même valeur 1 à chaque fois, ce qui fait que les valeurs aléatoires générées par rand() sont les mêmes.


Définition de la fonction srand() : void srand (unsigned int seed);
généralement la valeur de retour de geypid() ou time(0) peut être utilisée comme seed.
Si vous utilisez time(0), vous devez ajouter le fichier d'en-tête #include< time.h >
Par exemple :

le code s'affiche comme ci-dessous :

#include<stdio.h>
#include<time.h>                               
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{  srand((unsigned)time(NULL)); //srand((unsigned)time(0)) srand((int)time(0) 均可for(int i=0;i<10;i++) cout << rand() << endl; }




De cette façon, les résultats de chaque course seront différents ! !

Réimprimé de : Weidian Reading   https://www.weidianyuedu.com

Je suppose que tu aimes

Origine blog.csdn.net/weixin_45707610/article/details/131767548
conseillé
Classement