Generarea de numere aleatoare, numere aleatoare în php și javascript

Generarea de numere aleatoare, numere aleatoare în php și javascript

Din punct de vedere tehnic, termenul "generator de numere aleatorii" este absurd, deoarece numerele în sine nu sunt accidentale. De exemplu, 100 este un număr aleatoriu? Și 25? Ceea ce înseamnă acest termen înseamnă că creează o secvență de numere care apar în mod aleatoriu. Aceasta ridică o întrebare mai complexă: care este secvența numerelor aleatoare? Singurul răspuns corect este că secvența de numere aleatorii este o secvență în care toate elementele sunt libere. Această definiție conduce la paradoxul că orice secvență poate fi aleatoare sau ne-aleatoare în funcție de modul în care se obține această secvență. De exemplu, următoarea linie de numere






1 2 3 4 5 6 7 8 9 0
a fost obținut tastând rândul de sus al tastaturii în ordine, deci secvența nu poate fi tratată ca generată aleator. Dar dacă obțineți aceeași ordine, scoateți bilele de tenis numerotate din butoi. În acest caz, aceasta este deja o secvență generată aleator. Acest exemplu arată că aleatoritatea unei secvențe depinde de modul în care a fost obținută, nu de ea.







Rețineți că secvența de numere generate de computer este deterministă: fiecare număr, cu excepția primului, depinde de numerele precedente. Din punct de vedere tehnic, aceasta înseamnă că numai o secvență cvasi-aleatoare a numerelor poate fi generată de calculator, adică de fapt, ele nu sunt cu adevărat aleatoare. Totuși, acest lucru este suficient pentru majoritatea problemelor și astfel de secvențe vor fi numite aleatoare pentru simplitate. O metodă foarte interesantă a fost dezvoltată de John von Neumann; se numește adesea rms. În această metodă, numărul aleatoriu precedent este pătrat și apoi cifrele medii sunt extrase din rezultat. De exemplu, dacă creați un număr de trei cifre, iar numărul anterior a fost 121, apoi cuadratura rezultatul dă 14641. Izolarea a trei numere secundare care dă următorul număr aleatoriu 464. Un dezavantaj al acestei metode este că are o perioadă de repetiție foarte scurtă, numit ciclu . Din acest motiv, această metodă nu este utilizată astăzi. Metodele moderne de generare a numerelor aleatoare sunt mult mai complicate.

Numere aleatoare în PHP

În PHP, există două grupuri de funcții pentru a lucra cu numere aleatorii. Exclusiv externe, ele pot fi distinse prin prefixul mt_ pentru toate funcțiile unuia dintre grupuri.

Funcții depreciate
Rangul funcțiilor. Returnează un număr întreg de la zero la valoarea RAND_MAX (care este 32767). Acesta poate avea doi parametri opționali întregi - dacă sunt specificați, atunci un număr aleator este generat de la primul parametru la al doilea.

Funcție. Specifică secvența de numere aleatoare produsă de funcția rand. Are un întreg parametru - pentru valori diferite ale acestui parametru rand va produce diferite secvențe de numere. Este suficient să apelați funcția Srand o singură dată înainte de toate apelurile la funcția rand. Exemplu de utilizare:

Atenție vă rog! Începând cu PHP 4.2.0, nu trebuie să apelați srand () - PHP o face automat.
Funcția getrandmax (). Returnează valoarea numărului maxim aleatoriu (32767).







Trimiteți-le prietenilor: