Syntaxe :
#include <cstdlib> int rand( void );
La fonction rand()
retour un entier pseudo-aléatoire compris entre zéro
et RAND_MAX
.
Par exemple :
int i; srand( time(NULL) ); for( i = 0; i < 10; i++ ) printf( "Nombre aléatoire #%d: %d\n", i, rand() );
Note : Ne pas utiliser %
(opérateur modulo) pour “limiter” les nombres aléatoires
générés. Le caractère aléatoire de la fonction serait alors considérablement réduit.
Pour générer des nombres aléatoires entre 0 et un autre nombre, il est préférable
d'utiliser l'algorithme suivant qui garanti une distribution correcte des nombres
aléatoire.
// remarquez que l'utilisation des nombres flottants est importante, // l'utilisation des entier pourrait provoquer un dépassement de leur // dynamique en ajoutant 1. int randomNumber(int max) //générateur de nombre aléatoire correct pour [0,max-1] { // échelle sur [0,1) const float echelle = rand()/float(RAND_MAX); // return range [0..max-1] return int(echelle*max); }
Sujet connexe : srand