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