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

NUME
random, srandom, initstate, setstate - generator de numere aleatoare
BIBLIOTECA
Biblioteca C standard (libc, -lc)
SINOPSIS
#include <stdlib.h>
long random(void);
void srandom(unsigned int seed);
char *initstate(unsigned int seed, char state[.n], size_t n);
char *setstate(char *state);
Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):
random(), srandom(), initstate(), setstate():
_XOPEN_SOURCE >= 500
|| /* glibc >= 2.19: */ _DEFAULT_SOURCE
|| /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE
DESCRIERE
Funcția random() utilizează un generator de numere aleatoare cu reacție aditivă neliniară care utilizează
un tabel implicit de 31 de numere întregi lungi pentru a returna numere pseudoaleatoare succesive în
intervalul 0-2^31 - 1. Perioada acestui generator de numere aleatoare este foarte mare, aproximativ
16 * ((2^31) - 1).
Funcția srandom() își stabilește argumentul ca sămânță pentru o nouă secvență de numere întregi
pseudoaleatoare care va fi returnată de random(). Aceste secvențe pot fi repetate prin apelarea srandom()
cu aceeași valoare de sămânță. În cazul în care nu se furnizează nicio valoare de sămânță, funcția
random() este automat însămânțată cu o valoare de 1.
Funcția initstate() permite inițializarea unei matrice de stări state pentru a fi utilizată de random().
Dimensiunea matricei de stare n este utilizată de initstate() pentru a decide cât de sofisticat trebuie
să fie generatorul de numere aleatoare pe care trebuie să-l utilizeze - cu cât matricea de stare este mai
mare, cu atât mai bune vor fi numerele aleatoare. Valorile „optime” actuale pentru dimensiunea matricei
de stări n sunt 8, 32, 64, 128 și 256 de octeți; alte valori vor fi rotunjite la cea mai apropiată
valoare cunoscută. Dacă se utilizează mai puțin de 8 octeți, se produce o eroare. seed este sămânța
pentru inițializare, care specifică un punct de pornire pentru secvența de numere aleatoare și asigură
repornirea în același punct.
Funcția setstate() modifică matricea de stare utilizată de funcția random(). Matricea de stare state este
utilizată pentru generarea numerelor aleatoare până la următorul apel al funcției initstate() sau
setstate(). state trebuie mai întâi să fi fost inițializat cu ajutorul initstate() sau să fie rezultatul
unui apel anterior al setstate().
VALOAREA RETURNATĂ
Funcția random() returnează o valoare între 0 și (2^31) - 1. Funcția srandom() nu returnează nicio
valoare.
Funcția initstate() returnează un indicator la matricea de stare anterioară. În caz de eșec, aceasta
returnează NULL, iar errno este configurată pentru a indica eroarea.
În caz de succes, setstate() returnează un indicator la matricea de stare anterioară. În caz de eșec,
aceasta returnează NULL, iar errno este configurată pentru a indica eroarea.
ERORI-IEȘIRE
EINVAL Argumentul state dat la setstate() a fost NULL.
EINVAL O matrice de stare mai mică de 8 octeți a fost specificată la initstate().
ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
┌─────────────────────────────────────────────────────────────────────────┬───────────────────┬─────────┐
│ Interfață │ Atribut │ Valoare │
├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
│ random(), srandom(), initstate(), setstate() │ Siguranța firelor │ MT-Safe │
└─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘
STANDARDE
POSIX.1-2008.
ISTORIC
POSIX.1-2001, 4.3BSD.
NOTE
Generarea numerelor aleatoare este un subiect complex. Numerical Recipes in C: The Art of Scientific
Computing (William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling; New York:
Cambridge University Press, 2007, ed. a 3-a) oferă o discuție excelentă a problemelor practice de
generare a numerelor aleatoare în capitolul 7 (Random Numbers).
Pentru o discuție mai teoretică, care acoperă în profunzime și multe aspecte practice, a se vedea
capitolul 3 (Random Numbers) din The Art of Computer Programming Donald E. Knuth's, volumul 2
(Seminumerical Algorithms), 2nd ed.; Reading, Massachusetts: Addison-Wesley Publishing Company, 1981.
PRECAUȚII
Funcția random() nu ar trebui utilizată în programele cu mai multe fire de execuție în care este necesar
un comportament reproductibil. Folosiți random_r(3) în acest scop.
ERORI
În conformitate cu POSIX, initstate() ar trebui să returneze NULL în caz de eroare. În implementarea
glibc, errno este (așa cum este specificat) stabilită în caz de eroare, dar funcția nu returnează NULL.
CONSULTAȚI ȘI
getrandom(2), drand48(3), rand(3), random_r(3), srand(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 random(3)