rand() : génération de valeurs pseudo-aléatoires
srand() : initialisation de valeurs pseudo-aléatoires
RAND_MAX : plus grand entier que peut retourner rand()
Prototype:
- int rand( void );
- void srand( unsigned int racine);
dans: <stdlib.h>
Description:
La fonction rand fournit, à chaque appel une valeur entière, comprise entre 0 et RAND_MAX.
Par exemple on peut avoir RAND_MAX = 32767 = 2**15-1
Plusieurs appels à rand() fournissent des valeurs, constituant une suite de valeurs pseudo-aléatoires.
La procédure srand() initialise le fonctionnement de rand().
Pour générer des suites différentes on peut utiliser la date et l'heure système obtenu par un appel à la fonction time(), ce qui donne l'instruction: srand(time(NULL));
Par contre, après des appels à srand(12345), les valeurs générées par rand() seront les mêmes.
RAND_MAX est défini dans <stdlib.h>; on peut avoir suivant la machine l'une des définitions:
- #define RAND_MAX 32767
- #define RAND_MAX 2147483647
Voir aussi:
Portabilité:
Exemple:
/*
Deux suites de valeurs psudo-aléatoires sont affichées.
La première est constituée d'entiers compris entre 0 et RAND_MAX.
La première est constituée de réels compris entre 0 et 1.
*/
#include
#include
#define NBVAL 50
void main(void) {
int i;
printf("\nSuite de %d valeurs:", NBVAL);
for(i=0; i