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

NOM

       drand48,  erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48,
       lcong48 - Générer de nombres pseudo-aléatoires uniformément distribués

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]);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       All functions described on this page: _SVID_SOURCE || _XOPEN_SOURCE

DESCRIPTION

       Ces fonctions génèrent des nombres pseudo-aléatoires  en  utilisant  un
       algorithme  de  congruence  linéaire,  et  une arithmétique entière sur
       48 bits.

       Les fonctions drand48() et erand48() renvoient des valeurs positives en
       virgule  flottante  double  précision,  uniformément  distribuées  dans
       l’intervalle [0.0, 1.0].

       Les fonctions  lrand48()  et  nrand48()  renvoient  des  entiers  longs
       positifs, uniformément distribués entre 0 et 2^31.

       Les  fonctions  mrand48()  et  jrand48()  renvoient  des  entiers longs
       signés, uniformément distribués entre -2^31 et 2^31.

       Les fonctions srand48(),  seed48()  et  lcong48()  sont  des  fonctions
       d’initialisation.   L’une   d’entre   elles  doit  être  appelée  avant
       d’utiliser  les  fonctions  drand48(),  lrand48()  ou  mrand48().   Les
       fonctions  erand48(),  nrand48()  et  jrand48()  ne  nécessitent pas de
       fonction d’initialisation.

       Toutes ces fonctions engendrent une séquence d’entiers Xi, sur 48 bits,
       suivant la formule de congruence linéaire :

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

       Le  paramètre m vaut 2^48, ainsi l’arithmétique entière sur 48 bits est
       respectée. Tant que lcong48() n’est pas appelé, a et c valent :

              a = 0x5DEECE66D
              c = 0xB

       Les  valeurs  renvoyées  par  les   fonctions   drand48(),   erand48(),
       lrand48(), nrand48(), mrand48() ou jrand48() sont calculées en générant
       les Xi suivant sur 48 bits dans la séquence. Ensuite, le nombre de bits
       approprié  au type de la valeur de retour est copié en partant des bits
       de poids forts de Xi, et convertit dans la valeur renvoyée.

       Les fonctions drand48(), lrand48() et mrand48() mémorisent  le  dernier
       Xi  sur  48 bits  créé dans un tampon interne. Les fonctions erand48(),
       nrand48() et jrand48() nécessitent que le programme appelant  fournisse
       un  emplacement  de  stockage  pour  les valeurs successives de Xi. Cet
       emplacement est  le  tableau  correspondant  à  l’argument  xsubi.  Ces
       fonctions sont initialisées en plaçant la valeur initiale de Xi dans le
       tableau avant le premier appel.

       La fonction d’initialisation srand48() définit  les  32 bits  de  poids
       fort  de  Xi avec l’argument seedval. Les 16 bits de poids faibles sont
       initialisés avec la valeur arbitraire 0x330E.

       La fonction d’initialisation seed48() définit la valeur de Xi comme  la
       valeur  spécifiée  dans  le tableau seed16v. La précédente valeur de Xi
       est copiée dans un tampon interne et un pointeur  vers  ce  tampon  est
       renvoyé par seed48().

       La  fonction  d’initialisation  lcong48()  permet  à  l’utilisateur  de
       définir des valeurs initiales de Xi, a et c. Les éléments param[0-2] du
       tableau  spécifient Xi, param[3-5] spécifient a et param[6] spécifie c.
       Après un appel à  lcong48(),  un  appel  ultérieur  à  srand48()  ou  à
       seed48() rétablira les valeurs normales de a et c.

CONFORMITÉ À

       SVr4, POSIX.1-2001.

NOTES

       Ces  fonctions  sont  déclarées  obsolètes  par SVID 3, qui indique que
       rand(3) devrait être utilisée à la place.

VOIR AUSSI

       rand(3), random(3)

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 Florentin Duneau <fduneau@gmail.com> 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> ».

                                  2007-07-26                        DRAND48(3)