drand48(3) Library Functions Manual drand48(3) NUME drand48, erand48, lrand48, nrand48, mrand48, mrand48, jrand48, srand48, seed48, lcong48 - genereaza numere pseudo-aleatorii distribuite uniform BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include 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]); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): Toate funciile prezentate mai sus: _XOPEN_SOURCE || /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _SVID_SOURCE DESCRIERE Aceste funcii genereaza numere pseudo-aleatorii folosind algoritmul de congruena liniara i aritmetica numerelor intregi pe 48 de bii. Funciile drand48() i erand48() returneaza valori in virgula mobila de precizie dubla nenegativa distribuite uniform in intervalul [0,0, 1,0]. Funciile lrand48() i nrand48() returneaza numere intregi lungi nenegative distribuite uniform in intervalul [0, 2^31). Funciile mrand48() i jrand48() returneaza numere intregi lungi semnate distribuite uniform in intervalul [-2^31, 2^31]. Funciile srand48(), seed48() i lcong48() sunt funcii de iniializare, dintre care una trebuie apelata inainte de a utiliza drand48(), lrand48() sau mrand48(). Funciile erand48(), nrand48() i jrand48() nu necesita apelarea mai intai a unei funcii de iniializare. Toate funciile funcioneaza prin generarea unei secvene de numere intregi de 48 de bii, Xi, in conformitate cu formula congruenta liniara: Xn+1 = (aXn + c) mod m, unde n >= 0 Parametrul m = 2^48, prin urmare, se efectueaza aritmetica numerelor intregi pe 48 de bii. Daca nu se apeleaza lcong48(), a i c sunt date de: a = 0x5DEECE66D c = 0xB Valoarea returnata de oricare dintre funciile drand48(), erand48(), lrand48(), nrand48(), mrand48() sau jrand48() este calculata prin generarea mai intai a urmatorului Xi pe 48 de bii din secvena. Apoi, numarul corespunzator de bii, in funcie de tipul elementului de date care urmeaza sa fie returnat, este copiat de la biii de ordin inalt din Xi i transformat in valoarea returnata. Funciile drand48(), lrand48() i mrand48() stocheaza ultimul Xi pe 48 de bii generat intr-o memorie tampon interna. Funciile erand48(), nrand48() i jrand48() solicita programului apelant sa asigure stocarea valorilor Xi succesive in argumentul de matrice xsubi. Funciile sunt iniializate prin introducerea valorii iniiale a Xi in matrice inainte de a apela funcia pentru prima data. Funcia de iniializare srand48() stabilete cei 32 de bii de ordin superior din Xi la argumentul seedval. Cei 16 bii de ordin inferior sunt fixai la valoarea arbitrara 0x330E. Funcia de iniializare seed48() stabilete valoarea lui Xi la valoarea pe 48 de bii specificata in argumentul de matrice seed16v. Valoarea anterioara a lui Xi este copiata intr-o memorie tampon interna, iar seed48() returneaza un indicator la aceasta memorie tampon. Funcia de iniializare lcong48() permite utilizatorului sa specifice valorile iniiale pentru Xi, a i c. Elementele de argument ale matricei param[0-2] specifica Xi, param[3-5] specifica a, iar param[6] specifica c. Dupa ce lcong48() a fost apelata, un apel ulterior fie la srand48(), fie la seed48() va restabili valorile standard ale a i c. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +---------------------------------+---------------------+--------------+ |Interfaa | Atribut | Valoare | +---------------------------------+---------------------+--------------+ |drand48(), erand48(), lrand48(), | Sigurana firelor | MT-Unsafe | |nrand48(), mrand48(), jrand48(), | | race:drand48 | |srand48(), seed48(), lcong48() | | | +---------------------------------+---------------------+--------------+ Funciile de mai sus inregistreaza informaii de stare globala pentru generatorul de numere aleatoare, deci nu sunt sigure pentru fire de execuie. STANDARDE POSIX.1-2008. ISTORIC POSIX.1-2001, SVr4. CONSULTAI I rand(3), random(3) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 drand48(3)