Loading

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

   Exigences de  macros  de  test  de  fonctionnalités  pour  la  glibc  (voir
   feature_test_macros(7)) :

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

       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)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.23 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 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> ».

                                26 juillet 2007