random - générer un nombre pseudo-aléatoire
#define _DEFAULT_SOURCE#include <stdlib.h>
long random(void);
Le fait de définir _DEFAULT_SOURCE
de cette manière permet d'utiliser random
dans stdlib.h
.
Cette fonction génère un nombre pseudo-aléatoire entre 0
et RAND_MAX
, inclusivement, où RAND_MAX
est une constante définie dans stdlib.h
.
Pour obtenir une valeur pseudo-aléatoire en virgule flottante entre 0.0
et 1.0
, exclusivement, il est courant de diviser la valeur de retour de random par (double) RAND_MAX + 1
, comme suit :
float nombre = random() / ((double) RAND_MAX + 1);
Pour obtenir un nombre pseudo-aléatoire entier entre 0
et N
, exclusivement, où N
est un entier donné, il est courant de diviser la valeur de retour de random par (double) RAND_MAX + 1
puis de multiplier le quotient par N
, comme suit :
int nombre = (random() / ((double) RAND_MAX + 1)) * N;
Cette fonction renvoie le nombre généré de manière pseudo-aléatoire sous forme d'un long
.
#define _DEFAULT_SOURCE
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void)
{
srandom(time(NULL));
printf("%lu\n", random());
printf("%lu\n", random());
printf("%lu\n", random());
}
L'appel de la fonction time
avec une entrée de NULL
, une constante définie dans stdlib.h
, renvoie l'heure actuelle en secondes.