Provided by: manpages-fr_1.67.0-1_all bug

NOM

       drand48,  erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48,
       lcong48  -  Générateurs  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]);

DESCRIPTION

       Ces  fonctions engendrent 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 réelles en
       virgule flottante  uniformément  distribuées  dans  l’intervalle  [0.0,
       1.0].

       Les  fonctions  lrand48()  et  nrand48()  renvoient  des  entiers longs
       positifs ou nuls, 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.  Une  d’entre  elles  devrait  être   appelée   avant
       d’utiliser drand48(), lrand48() ou mrand48().  Les fonctions erand48(),
       nrand48() et jrand48() ne nécessitent pas de fonction  d’initialisation
       préliminaire.

       Toutes ces fonctions engendrent une séquence d’entiers Xi, sur 48 bits,
       en utilisant la formule de congruence lineaire :

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

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

              a = 0x5DEECE66D
              c = 0xB

       Les  fonctions drand48(), erand48(), lrand48(), nrand48(), mrand48() et
       jrand48() commencent par calculer le Xi suivant dans la séquence,  puis
       le  nombre de bits approprié à la valeur de retour est copié en partant
       des bits de poids forts, enfin cette dernière valeur est renvoyée.

       Les fonctions drand48(), lrand48() et mrand48() mémorisent  le  dernier
       Xi  créé dans un buffer 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  une  valeur pour Xi dans le
       tableau avant le premier appel.

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

       La fonction d’initialisation seed48() place  les  éléments  du  tableau
       seed16v  dans les 48 bits de Xi.  La valeur précédente de Xi est copiée
       dans un buffer interne sur lequel un pointeur est renvoyé par seed48().

       La  fonction  d’initialisation  lcong48()  permet  à  l’utilisateur  de
       fournir les valeurs initiales de Xi, a et c.  Les  éléments  param[0-2]
       du  tableau  fourni  en  argument  représentent  les  48  bits  de  Xi,
       param[3-5] correspondent à a, et param[6] correspond  à  c.   Après  un
       appel  à  lcong48(),  un  appel  ultérieur  à  srand48()  ou à seed48()
       rétablira les valeurs normales de a et c.

CONFORMITÉ

       SVID 3

NOTES

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

VOIR AUSSI

       rand(3), random(3)

TRADUCTION

       Christophe Blaess, 1996-2003.