Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       drand48,  erand48,  lrand48,  nrand48,  mrand48,  mrand48,  jrand48, srand48, seed48, lcong48 - generează
       numere pseudo-aleatorii distribuite uniform

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #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 seedval);
       unsigned short *seed48(unsigned short seed16v[3]);
       void lcong48(unsigned short param[7]);

   Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

       Toate funcțiile prezentate mai sus:
           _XOPEN_SOURCE
               || /* glibc >= 2.19: */ _DEFAULT_SOURCE
               || /* glibc <= 2.19: */ _SVID_SOURCE

DESCRIERE

       Aceste funcții generează numere pseudo-aleatorii folosind algoritmul de congruență liniară și  aritmetica
       numerelor întregi pe 48 de biți.

       Funcțiile  drand48()  și  erand48()  returnează  valori  în  virgulă  mobilă de precizie dublă nenegativă
       distribuite uniform în intervalul [0,0, 1,0].

       Funcțiile lrand48() și nrand48() returnează  numere  întregi  lungi  nenegative  distribuite  uniform  în
       intervalul [0, 2^31).

       Funcțiile  mrand48()  și  jrand48()  returnează  numere  întregi  lungi  semnate  distribuite  uniform în
       intervalul [-2^31, 2^31].

       Funcțiile srand48(), seed48() și lcong48() sunt funcții de inițializare, dintre care una trebuie  apelată
       înainte  de  a utiliza drand48(), lrand48() sau mrand48(). Funcțiile erand48(), nrand48() și jrand48() nu
       necesită apelarea mai întâi a unei funcții de inițializare.

       Toate funcțiile funcționează prin generarea unei secvențe de  numere  întregi  de  48  de  biți,  Xi,  în
       conformitate cu formula congruentă liniară:

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

       Parametrul  m  =  2^48, prin urmare, se efectuează aritmetica numerelor întregi pe 48 de biți. Dacă nu se
       apelează lcong48(), a și c sunt date de:

           a = 0x5DEECE66D
           c = 0xB

       Valoarea returnată de oricare dintre funcțiile drand48(), erand48(), lrand48(), nrand48(), mrand48()  sau
       jrand48()  este  calculată  prin  generarea  mai întâi a următorului Xi pe 48 de biți din secvență. Apoi,
       numărul corespunzător de biți, în funcție de tipul elementului de date care urmează să fie returnat, este
       copiat de la biții de ordin înalt din Xi și transformat în valoarea returnată.

       Funcțiile drand48(), lrand48() și mrand48() stochează ultimul Xi pe 48 de  biți  generat  într-o  memorie
       tampon  internă.  Funcțiile  erand48(),  nrand48()  și  jrand48() solicită programului apelant să asigure
       stocarea valorilor Xi succesive  în  argumentul  de  matrice  xsubi.  Funcțiile  sunt  inițializate  prin
       introducerea valorii inițiale a Xi în matrice înainte de a apela funcția pentru prima dată.

       Funcția  de  inițializare  srand48()  stabilește  cei  32  de biți de ordin superior din Xi la argumentul
       seedval. Cei 16 biți de ordin inferior sunt fixați la valoarea arbitrară 0x330E.

       Funcția de inițializare seed48() stabilește valoarea lui Xi la valoarea pe  48  de  biți  specificată  în
       argumentul  de  matrice seed16v. Valoarea anterioară a lui Xi este copiată într-o memorie tampon internă,
       iar seed48() returnează un indicator la această memorie tampon.

       Funcția de inițializare lcong48() permite utilizatorului să specifice valorile inițiale pentru Xi,  a  și
       c.  Elementele  de  argument  ale  matricei param[0-2] specifică Xi, param[3-5] specifică a, iar param[6]
       specifică c. După ce lcong48() a fost apelată, un apel ulterior fie la  srand48(),  fie  la  seed48()  va
       restabili valorile standard ale a și c.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
       ┌──────────────────────────────────────────────────────────┬───────────────────┬────────────────────────┐
       │ InterfațăAtributValoare                │
       ├──────────────────────────────────────────────────────────┼───────────────────┼────────────────────────┤
       │ drand48(), erand48(), lrand48(), nrand48(), mrand48(),   │ Siguranța firelor │ MT-Unsafe race:drand48 │
       │ jrand48(), srand48(), seed48(), lcong48()                │                   │                        │
       └──────────────────────────────────────────────────────────┴───────────────────┴────────────────────────┘

       Funcțiile  de  mai  sus înregistrează informații de stare globală pentru generatorul de numere aleatoare,
       deci nu sunt sigure pentru fire de execuție.

STANDARDE

       POSIX.1-2008.

ISTORIC

       POSIX.1-2001, SVr4.

CONSULTAȚI ȘI

       rand(3), random(3)

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel    Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3 sau o
       versiune  ulterioară  cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se   asumă   NICIO
       RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                         drand48(3)