Provided by: manpages-fr-dev_3.65d1p1-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.65 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)