RANDOM(3) Manuel du programmeur Linux RANDOM(3)
NOM
random, srandom, initstate, setstate - Générateur de nom
bres aléatoires.
SYNOPSIS
#include <stdlib.h>
long int random (void);
void srandom (unsigned int seed);
char *initstate (unsigned int seed, char *state, int n);
char *setstate (char *state);
DESCRIPTION
La fonction random() utilise une fonction non-linéaire
pour engendrer des nombres pseudo-aléatoires entre 0 et
RAND_MAX. La période de ce générateur est très grande,
approximativement 16*((2**31)-1).
La fonction srandom() utilise son argument comme "graine"
pour engendrer une nouvelle séquence de nombre pseudo-
aléatoires qui seront fournis lors des appels à random().
Ces séquences sont reproductibles en invoquant srandom()
avec la même graine. Si aucune graine n'est fournie, La
fonction random() utilise automatiquement une graine orig
inale de valeur 1.
La fonction initstate() permet d'initialiser une table
d'états state pour l'utiliser avec random(). La taille n
de la table est utilisée par initstate() pour déterminer
le niveau de sophistication du générateur de nombre
aléatoires. Plus grande est la table d'état, meilleurs
seront les nombres aléatoires. seed est la graine
utilisée pour l'initialisation, indiquant un point de
départ pour la séquence de nombres, et permet de redémar
rer au même endroit.
La fonction setstate() modifie la table d'états utilisée
par la fonction random(). La table d'état state est alors
utilisée comme générateur de nombres aléatoires jusqu'au
prochain appel de initstate() ou setstate(). state doit
d'abord être initialisée avec initstate().
VALEUR RENVOYÉE
La fonction random() renvoie une valeur entre 0 et
RAND_MAX. La fonction srandom() ne renvoie pas de valeur.
Les fonctions initstate() et setstate() renvoient un poin
teur sur la table d'états précédente.
ERREURS
EINVAL Une table d'états plus courte que 8 octets a été
fournie à initstate().
NOTES
Actuellement, les valeurs optimales n, pour la taille de
GNU 7 Novembre 1996 1
RANDOM(3) Manuel du programmeur Linux RANDOM(3)
la table d'états sont 8, 32, 64, 128, et 256 octets. Les
autres valeurs seront arrondies à la taille la plus
proche. Essayer d'utiliser moins de 8 octets déclenche une
erreur.
CONFORMITÉ
BSD 4.3
VOIR AUSSI
rand(3), srand(3)
TRADUCTION
Christophe Blaess, 1997.
NOTE DU TRADUCTEUR
la table state pour setstate() peut être obtenue depuis
/dev/random.
GNU 7 Novembre 1996 2