Provided by: manpages-fr-dev_2.80.1-1_all bug

NOM

       random,   srandom,   initstate,   setstate   -  Générateur  de  nombres
       aléatoires.

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 pour les macros de test de fonctionnalité de la glibc  (consultez
   feature_test_macros(7)) :

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

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
       originale 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émarrer 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()  ou
       être le résultat d’un appel précédent à setstate()

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 pointeur sur la table d’états précédente, ou
       NULL en cas d’erreur.

ERREURS

       EINVAL Une  table  d’états  de  moisn  de  8 octets  a  été  fournie  à
              initstate().

CONFORMITÉ

       BSD 4.3, POSIX.1-2001.

NOTES

       Actuellement,  les  valeurs  optimales  n,  pour  la taille de 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.

       Cette fonction ne  devrait  pas  être  utilisée  si  plusieurs  threads
       utilisent  random()  et  si  le  comportement  doit être reproductible.
       Utilisez random_r(3) dans ce cas.

       La  génération  de  nombres  alétoires  est  un  sujet  complexe.  Dans
       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 problèmes pratiques de génération de noms
       aléatoires dans le chapitre 7 (Random Numbers).

       Pour  une discussion plus théorique, qui aborde également 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), srand(3)

COLOPHON

       Cette  page  fait  partie  de  la  publication 2.80 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement         gérées         par         Nicolas         François
       <nicolas.francois@centraliens.net>    et    l’équipe   francophone   de
       traduction de Debian.

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

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document
       en utilisant la commande « man -L C <section> <page_de_man> ».