.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified Sun Mar 28 00:25:51 1993, David Metcalfe .\" Modified Sat Jul 24 18:13:39 1993 by Rik Faith (faith@cs.unc.edu) .\" Modified Sun Aug 20 21:47:07 2000, aeb .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH random 3 "20 iulie 2023" "Pagini de manual de Linux 6.05.01" .SH NUME random, srandom, initstate, setstate \- generator de numere aleatoare .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .nf \fB#include \fP .PP \fBlong random(void);\fP \fBvoid srandom(unsigned int \fP\fIseed\fP\fB);\fP .PP \fBchar *initstate(unsigned int \fP\fIseed\fP\fB, char \fP\fIstate\fP\fB[.\fP\fIn\fP\fB], size_t \fP\fIn\fP\fB);\fP \fBchar *setstate(char *\fP\fIstate\fP\fB);\fP .fi .PP .RS -4 Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați \fBfeature_test_macros\fP(7)): .RE .PP \fBrandom\fP(), \fBsrandom\fP(), \fBinitstate\fP(), \fBsetstate\fP(): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE >= 500 || /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE .fi .SH DESCRIERE Funcția \fBrandom\fP() 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\[ha]31\ \-\ 1. Perioada acestui generator de numere aleatoare este foarte mare, aproximativ \fI16\ *\ ((2\[ha]31)\ \-\ 1)\fP. .PP Funcția \fBsrandom\fP() își stabilește argumentul ca sămânță pentru o nouă secvență de numere întregi pseudoaleatoare care va fi returnată de \fBrandom\fP(). Aceste secvențe pot fi repetate prin apelarea \fBsrandom\fP() cu aceeași valoare de sămânță. În cazul în care nu se furnizează nicio valoare de sămânță, funcția \fBrandom\fP() este automat însămânțată cu o valoare de 1. .PP Funcția \fBinitstate\fP() permite inițializarea unei matrice de stări \fIstate\fP pentru a fi utilizată de \fBrandom\fP(). Dimensiunea matricei de stare \fIn\fP este utilizată de \fBinitstate\fP() 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 \fIn\fP 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. \fIseed\fP 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. .PP Funcția \fBsetstate\fP() modifică matricea de stare utilizată de funcția \fBrandom\fP(). Matricea de stare \fIstate\fP este utilizată pentru generarea numerelor aleatoare până la următorul apel al funcției \fBinitstate\fP() sau \fBsetstate\fP(). \fIstate\fP trebuie mai întâi să fi fost inițializat cu ajutorul \fBinitstate\fP() sau să fie rezultatul unui apel anterior al \fBsetstate\fP(). .SH "VALOAREA RETURNATĂ" Funcția \fBrandom\fP() returnează o valoare între 0 și \fI(2\[ha]31)\ \-\ 1\fP. Funcția \fBsrandom\fP() nu returnează nicio valoare. .PP Funcția \fBinitstate\fP() returnează un indicator la matricea de stare anterioară. În caz de eșec, aceasta returnează NULL, iar \fIerrno\fP este configurată pentru a indica eroarea. .PP În caz de succes, \fBsetstate\fP() returnează un indicator la matricea de stare anterioară. În caz de eșec, aceasta returnează NULL, iar \fIerrno\fP este configurată pentru a indica eroarea. .SH ERORI\-IEȘIRE .TP \fBEINVAL\fP Argumentul \fIstate\fP dat la \fBsetstate\fP() a fost NULL. .TP \fBEINVAL\fP O matrice de stare mai mică de 8 octeți a fost specificată la \fBinitstate\fP(). .SH ATRIBUTE Pentru o explicație a termenilor folosiți în această secțiune, a se vedea \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfață Atribut Valoare T{ .na .nh \fBrandom\fP(), \fBsrandom\fP(), \fBinitstate\fP(), \fBsetstate\fP() T} Siguranța firelor MT\-Safe .TE .sp 1 .SH STANDARDE POSIX.1\-2008. .SH ISTORIC POSIX.1\-2001, 4.3BSD. .SH NOTE Generarea numerelor aleatoare este un subiect complex. \fINumerical Recipes in C: The Art of Scientific Computing\fP (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). .PP Pentru o discuție mai teoretică, care acoperă în profunzime și multe aspecte practice, a se vedea capitolul 3 (Random Numbers) din \fIThe Art of Computer Programming\fP Donald E.\& Knuth's, volumul 2 (Seminumerical Algorithms), 2nd ed.; Reading, Massachusetts: Addison\-Wesley Publishing Company, 1981. .SH PRECAUȚII Funcția \fBrandom\fP() nu ar trebui utilizată în programele cu mai multe fire de execuție în care este necesar un comportament reproductibil. Folosiți \fBrandom_r\fP(3) în acest scop. .SH ERORI .\" http://sourceware.org/bugzilla/show_bug.cgi?id=15380 În conformitate cu POSIX, \fBinitstate\fP() ar trebui să returneze NULL în caz de eroare. În implementarea glibc, \fIerrno\fP este (așa cum este specificat) stabilită în caz de eroare, dar funcția nu returnează NULL. .SH "CONSULTAȚI ȘI" \fBgetrandom\fP(2), \fBdrand48\fP(3), \fBrand\fP(3), \fBrandom_r\fP(3), \fBsrand\fP(3) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .