dwww Home | Manual pages | Find package

drand48(3)                 Library Functions Manual                 drand48(3)

NOM
       drand48,  erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48,
       lcong48 - Générer des nombres pseudoaléatoires uniformément distribués

BIBLIOTHÈQUE
       Bibliothèque C standard (libc, -lc)

SYNOPSIS
       #include <stdlib.h>

       double drand48(void);
       double erand48(unsigned short xsubi[3]);

       long lrand48(void);
       long nrand48(unsigned short xsubi[3]);

       long mrand48(void);
       long jrand48(unsigned short xsubi[3]);

       void srand48(long valeur_graine);
       unsigned short *seed48(unsigned short graine_16v[3]);
       void lcong48(unsigned short param[7]);

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

       Pour toutes les fonctions ci-dessus :
           _XOPEN_SOURCE
               || /* glibc >= 2.19 : */ _DEFAULT_SOURCE
               || /* glibc <= 2.19 : */ _SVID_SOURCE

DESCRIPTION
       Ces fonctions génèrent des nombres pseudoaléatoires en utilisant un al-
       gorithme  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'in-
       tervalle [0.0 ; 1.0[.

       Les  fonctions lrand48() et nrand48() renvoient des entiers longs posi-
       tifs, uniformément distribués dans l'intervalle [0 ; 2^31[.

       Les fonctions mrand48() et jrand48() renvoient des  entiers  longs  si-
       gnés, uniformément distribués dans l'intervalle [-2^31 ; 2^31[.

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

       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. Sauf si lcong48() est appelée, 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
       tout  d'abord  le  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 fort de Xi et converti dans la valeur ren-
       voyé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 em-
       placement est le tableau correspondant à l'argument  xsubi.  Ces  fonc-
       tions sont initialisées en plaçant la valeur initiale de Xi dans le ta-
       bleau avant le premier appel de la fonction.

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

       La fonction d'initialisation seed48() définit la valeur de Xi  avec  la
       valeur  sur 48 bits spécifiée dans l'argument seed16v. La valeur précé-
       dente 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éfi-
       nir des valeurs initiales de Xi, a et c. Dans  le  tableau  param,  les
       éléments  param[0-2] 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
       Pour  une explication des termes utilisés dans cette section, consulter
       attributes(7).

       ┌────────────────────────────────┬──────────────────────┬──────────────┐
       │InterfaceAttributValeur       │
       ├────────────────────────────────┼──────────────────────┼──────────────┤
       │drand48(), erand48(),           │ Sécurité des threads │ MT-Unsafe    │
       │lrand48(), nrand48(),           │                      │ race:drand48 │
       │mrand48(), jrand48(),           │                      │              │
       │srand48(), seed48(), lcong48()  │                      │              │
       └────────────────────────────────┴──────────────────────┴──────────────┘

       Les fonctions ci-dessus enregistrent globalement l'état  du  générateur
       de nombre aléatoire. Elles ne sont donc pas sûres dans un contexte mul-
       tithread.

STANDARDS
       POSIX.1-2001, POSIX.1-2008, SVr4.

VOIR AUSSI
       rand(3), random(3)

TRADUCTION
       La traduction française de cette page de manuel a été créée par  Chris-
       tophe  Blaess  <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste-
       phan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, Fran-
       çois  Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Gué-
       rard <fevrier@tigreraye.org>, Jean-Luc  Coulon  (f5ibh)  <jean-luc.cou-
       lon@wanadoo.fr>,  Julien  Cristau <jcristau@debian.org>, Thomas Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François  <nicolas.francois@centra-
       liens.net>,  Florentin  Duneau <fduneau@gmail.com>, Simon Paillard <si-
       mon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier    <barbier@de-
       bian.org>,  David  Prévot  <david@tilapin.org>  et  Lucien  Gentis <lu-
       cien.gentis@waika9.com>

       Cette traduction est une documentation libre ; veuillez vous reporter à
       la        GNU        General       Public       License       version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ concernant  les  conditions
       de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si  vous découvrez un bogue dans la traduction de cette page de manuel,
       veuillez envoyer un message à ⟨debian-l10n-french@lists.debian.org⟩.

Pages du manuel de Linux 6.03   10 février 2023                     drand48(3)

Generated by dwww version 1.15 on Sat Jun 29 01:39:51 CEST 2024.