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

NOM

       drand48,  erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48,
       lcong48 - Generer de nombres pseudo-aleatoires uniformement distribues

SYNOPSIS

       #include <stdlib.h>

       double drand48(void);

       double erand48(unsigned short xsubi[3]);

       long int lrand48(void);

       long int nrand48(unsigned short xsubi[3]);

       long int mrand48(void);

       long int jrand48(unsigned short xsubi[3]);

       void srand48(long int seedval);

       unsigned short *seed48(unsigned short seed16v[3]);

       void lcong48(unsigned short param[7]);

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

       Pour toutes les fonctions ci-dessus : _SVID_SOURCE || _XOPEN_SOURCE

DESCRIPTION

       Ces  fonctions  generent  des nombres pseudo-aleatoires en utilisant un
       algorithme de congruence lineaire,  et  une  arithmetique  entiere  sur
       48 bits.

       Les fonctions drand48() et erand48() renvoient des valeurs positives en
       virgule  flottante  double  precision,  uniformement  distribuees  dans
       l'intervalle [0.0, 1.0].

       Les  fonctions  lrand48()  et  nrand48()  renvoient  des  entiers longs
       positifs, uniformement distribues entre 0 et 2^31.

       Les fonctions  mrand48()  et  jrand48()  renvoient  des  entiers  longs
       signes, uniformement distribues entre -2^31 et 2^31.

       Les  fonctions  srand48(),  seed48()  et  lcong48()  sont des fonctions
       d'initialisation.  L'une  d'entre  elles  doit   etre   appelee   avant
       d'utiliser   les  fonctions  drand48(),  lrand48()  ou  mrand48().  Les
       fonctions erand48(), nrand48()  et  jrand48()  ne  necessitent  pas  de
       fonction d'initialisation.

       Toutes ces fonctions engendrent une sequence d'entiers Xi, sur 48 bits,
       suivant la formule de congruence lineaire :

              Xn+1 = (aXn + c) mod m, avec n >= 0

       Le parametre m vaut 2^48, ainsi l'arithmetique entiere sur 48 bits  est
       respectee. Tant que lcong48() n'est pas appele, a et c valent :

              a = 0x5DEECE66D
              c = 0xB

       Les   valeurs   renvoyees   par  les  fonctions  drand48(),  erand48(),
       lrand48(), nrand48(), mrand48() ou jrand48() sont calculees en generant
       les Xi suivant sur 48 bits dans la sequence. Ensuite, le nombre de bits
       approprie au type de la valeur de retour est copie en partant des  bits
       de poids forts de Xi, et convertit dans la valeur renvoyee.

       Les  fonctions  drand48(), lrand48() et mrand48() memorisent le dernier
       Xi sur 48 bits cree dans un tampon interne.  Les  fonctions  erand48(),
       nrand48()  et jrand48() necessitent que le programme appelant fournisse
       un emplacement de stockage pour les  valeurs  successives  de  Xi.  Cet
       emplacement  est  le  tableau  correspondant  a  l'argument  xsubi. Ces
       fonctions sont initialisees en placant la valeur initiale de Xi dans le
       tableau avant le premier appel.

       La  fonction  d'initialisation  srand48()  definit les 32 bits de poids
       fort de Xi avec l'argument seedval. Les 16 bits de poids  faibles  sont
       initialises avec la valeur arbitraire 0x330E.

       La  fonction d'initialisation seed48() definit la valeur de Xi comme la
       valeur specifiee dans le tableau seed16v. La precedente  valeur  de  Xi
       est  copiee  dans  un  tampon interne et un pointeur vers ce tampon est
       renvoye par seed48().

       La  fonction  d'initialisation  lcong48()  permet  a  l'utilisateur  de
       definir des valeurs initiales de Xi, a et c. Les elements param[0-2] du
       tableau specifient Xi, param[3-5] specifient a et param[6] specifie  c.
       Apres  un  appel  a  lcong48(),  un  appel  ulterieur  a srand48() ou a
       seed48() retablira les valeurs normales de a et c.

CONFORMIT'E

       SVr4, POSIX.1-2001.

NOTES

       Ces fonctions sont declarees obsoletes  par  SVID 3,  qui  indique  que
       rand(3) devrait etre utilisee a la place.

VOIR AUSSI

       rand(3), random(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).   Florentin
       Duneau 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> >>.

                                26 juillet 2007                     DRAND48(3)