Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       random, srandom, initstate, setstate - Generateur de nombres aleatoires

SYNOPSIS

       #include <stdlib.h>

       long int random(void);

       void srandom(unsigned int seed);

       char *initstate(unsigned int seed, char *state, size_t n);
       char *setstate(char *state);

   Exigences  de  macros  de  test de fonctionnalites pour la glibc (consultez
   feature_test_macros(7)) :

       random(), srandom(), initstate(), setstate() :
           _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

DESCRIPTION

       La  fonction  random()  utilise  un  generateur de nombre aleatoire non
       lineaire (<< non-linear additive feedback random  number  generator >>)
       utilisant  une  table  par  defaut  de  31  entiers longs pour renvoyer
       successivement des nombres pseudo-aleatoires entre 0  et  RAND_MAX.  La
       periode   de   ce   generateur   est   tres  grande,  approximativement
       16 * ((2^31) - 1).

       La fonction srandom() utilise  son  argument  comme  << graine >>  pour
       engendrer  une nouvelle sequence de nombre pseudo-aleatoires qui seront
       fournis lors des appels a random(). Ces sequences  sont  reproductibles
       en  invoquant  srandom()  avec  la  meme graine. Si aucune graine n'est
       fournie,  La  fonction  random()  utilise  automatiquement  une  graine
       originale de valeur 1.

       La  fonction  initstate()  permet d'initialiser une table d'etats state
       pour l'utiliser avec random(). La taille n de la table est utilisee par
       initstate()  pour  determiner le niveau de sophistication du generateur
       de nombre aleatoires. Plus grande est la table d'etat, meilleurs seront
       les   nombres   aleatoires.   seed   est   la   graine   utilisee  pour
       l'initialisation, indiquant un point de  depart  pour  la  sequence  de
       nombres, et permet de redemarrer au meme endroit.

       La  fonction  setstate()  modifie  la  table  d'etats  utilisee  par la
       fonction random(). La table  d'etat  state  est  alors  utilisee  comme
       generateur de nombres aleatoires jusqu'au prochain appel de initstate()
       ou setstate(). state doit d'abord etre initialisee avec initstate()  ou
       etre le resultat d'un appel precedent a setstate()

VALEUR RENVOY'EE

       La  fonction  random()  renvoie  une  valeur  entre  0  et RAND_MAX. La
       fonction srandom() ne renvoie pas de valeur.  La  fonction  initstate()
       renvoie  un  pointeur  sur  la  table  d'etats  precedente. La fonction
       setstate() renvoie un pointeur sur la table d'etats precedente, ou NULL
       en cas d'erreur.

ERREURS

       EINVAL Une  table  d'etats  de  moins  de  8 octets  a  ete  fournie  a
              initstate().

CONFORMIT'E

       BSD 4.3, POSIX.1-2001.

NOTES

       Actuellement, les valeurs optimales n,  pour  la  taille  de  la  table
       d'etats  sont  8, 32, 64, 128, et 256 octets. Les autres valeurs seront
       arrondies a la taille la  plus  proche.  Essayer  d'utiliser  moins  de
       8 octets declenche une erreur.

       Cette  fonction  ne  devrait  pas  etre  utilisee  si plusieurs threads
       utilisent random() et  si  le  comportement  doit  etre  reproductible.
       Utilisez random_r(3) dans ce cas.

       La  generation  de  nombres  aletoires est un sujet complexe. Numerical
       Recipes in C: The Art of Scientific Computing (William H. Press,  Brian
       P.  Flannery,  Saul  A.  Teukolsky,  William  T.  Vetterling; New York:
       Cambridge University Press,  2007,  3rd  ed.)  fournit  une  excellente
       discussion sur les problemes pratiques de generation de noms aleatoires
       dans le chapitre 7 (Random Numbers).

       Pour une discussion plus theorique, qui aborde egalement en  profondeur
       d'autres  domaines,  voir  le  chapitre  3 (Random Numbers) du livre de
       Donald  E.  Knuth  The  Art   of   Computer   Programming,   volume   2
       (Seminumerical    Algorithms),   2nd   ed.;   Reading,   Massachusetts:
       Addison-Wesley Publishing Company, 1981.

VOIR AUSSI

       drand48(3), rand(3), random_r(3), srand(3)

COLOPHON

       Cette page fait partie de  la  publication  3.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe Blaess  <URL:http://www.blaess.fr/christophe/>  (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).   Nicolas
       Francois et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez  signaler  toute  erreur   de   traduction   en   ecrivant   a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.