Creier-computerÎntrebarea este rezonabilă, pentru că un calculator, aşa cum ştim, este o maşină care face ceea ce i se spune. Dar dacă face ce i se spune, e predictibil, nu? Cum ne va surprinde, dacă ne va surprinde, creând un număr completamente aleator? Iată cum...

 

 

 

Generarea numerelor aleatoare, cu ajutorul... naturii

Natura, cel puţin pentru nivelul actual de cunoştinţe, poate produce evenimente pe care nu le putem prezice cu exactitate, ci doar statistic. De pildă, dezintegrarea radioactivă survine aleator. S-ar putea, deci, folosi un contor de particule Geiger pentru a capta radiaţii emise în urma dezintegrării unui element radioactiv şi utiliza valorile contorului pentru a genera numere aleatoare.

O altă sursă de informaţii greu predictibile ar fi variaţiile mişcării mouse-ului sau intervalul de timp dintre apăsarea a două taste. Surse foarte bune pot fi şi zgomotele din atmosferă1.


Utilizarea unui algoritm pentru folosirea unor numere pseudo-aleatoare

O altă metodă de a genera numere întâmplătoare este folosirea unui algoritm. Desigur, condiţia pentru generarea unui şir de numere care să nu poate fi ghicit este ca algoritmul şi valoarea iniţială a unei variabile care păstrează valoarea numărului general aleator să nu fie cunoscute de persoane interesate.

"Un generator de numere pseudo-aleatoare, cum se numesc acestea, trebuie să satisfacă anumite cerinţe:
:: să fie simplu şi rapid.
:: să producă şiruri de numere de lungime arbitrară care să nu conţină repetiţii. Deoarece un calculator nu poate genera decât numere mai mici decât un număr dat, nu se poate construi un generator cu perioadă infinită. Generatorul trebuie să aibă totuşi o perioadă cât mai mare.
:: să producă numere independente unul de altul (sau cu o corelare cât mai vagă).
:: să genereze numere cu o repartiţie uniformă"2.

Iată un exemplu de cod pentru generarea unui număr aleator, din cartea "The C Programming Language" de Kernighan and Ritchie:

int rand() { random_seed = random_seed * 1103515245 + 12345;
return (unsigned int)(random_seed / 65536) % 32768; }

Surse:

:: 1 şi 2 - www.galaxyng.com/adrian_atanasiu/cursuri/cript/cr2_3.pdf
:: computer.howstuffworks.com/question697.htm

Pt a posta comentarii: creați un cont pe site, folosiți contul de FB, Twitter sau Google ori postați ca vizitator (fără nicio formalitate de înregistrare). Pt vizitatori comentariile sunt moderate (nu se publică automat).

Loading comment... The comment will be refreshed after 00:00.

Fii primul care comentează.

Spune-ne care-i părerea ta...
caractere rămase.
Loghează-te ( Fă-ți un cont! )
ori scrie un comentariu ca „vizitator”

 


Sprijiniţi-ne cu o donaţie.


PayPal ()


Contact
| T&C | © 2020 Scientia.ro