Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

       drand48,  erand48,  lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 - Générer
       de nombres pseudoalé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    (consultez
   feature_test_macros(7)) :

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

DESCRIPTION

       Ces  fonctions  génèrent  des  nombres  pseudoalé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.

ATTRIBUTS

   Multithreading (voir pthreads(7))
       Les fonctions drand48(), erand48(), lrand48(), nrand48(), mrand48(), jrand48(), srand48(),
       seed48()  et  lcong48()  ne  sont  pas  sûres  dans  un  contexte  multithread  car  elles
       enregistrent globalement l'état du générateur de nombre aléatoire.

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.57 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

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

       Christophe    Blaess    <http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <http://manpagesfr.free.fr/> (2003-2006). Florentin  Duneau  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       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> ».

                                           21 juin 2013                                DRAND48(3)