Descoperirea cunoştinţelor
/ Knowledge Discovery >> Descoperirea cunoştinţelor >> tech >> calculator >> hardware de calculator >>

Cum poate un calculator complet logic genera un număr aleator?

How poate o mașină cu totul logic ca un computer a genera un număr aleator?
Cum poate o mașină cu totul logic ca un computer a genera un număr aleator?

Nu sunt două moduri în care computerele pot genera numere aleatoare:

Puteți crea un fel de dispozitiv care monitorizează un eveniment naturale complet aleator și trimite rezultatele la calculator. De exemplu, ai putea pune o bucată de material radioactiv în fața unui contor Geiger și conectați contorul Geiger la un computer. Deoarece dezintegrare radioactivă este aleatoare, contorul Geiger ar crea numere aleatoare cu adevărat. Această abordare este destul de rare, pentru că nu mulți oameni au contoare Geiger conectat la mașinile lor. Puteți crea o formulă care generează un număr pseudo-aleatoare. La proiectarea formula, ideea este de a produce un șir de numere care ar arăta aleatoriu pentru oricine care nu știu ce formula este. Caracteristicile o formulă bună includ: Site-ul

  • Nu repetiție: Ordinea nu ciclu în jurul și se repetă în sine. Buna distribuție numeric: Dacă formula este producătoare numere aleatorii între 0 și 9, numărul de zerouri, cele, câte două, etc, care le produce trebuie să fie aproximativ egală pe o perioadă lungă de timp. Lipsa de predictibilitate: Nu ai nici o modalitate de a prezice ce numărul următor va fi, dacă nu știi formula și semințele (valoarea inițială) Site-ul

    Iată un exemplu de simplu formula aleator de numere de. cartea " C Programming Language, " de Kernighan și Ritchie:

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

    Această formulă presupune existența unei variabile numite random_seed, care este stabilită inițial la un numar. Variabila random_seed se înmulțește cu 1103515245 și apoi 12345 se adaugă la produsul; random_seed este apoi înlocuit cu acest nou valoare. Aceasta este de fapt o destul de bun generator de numere pseudo-aleatoare. Ea are o distribuție bună și este non-repetitivă. Dacă îl folosiți pentru a produce numere aleatorii între 0 și 9, aici sunt primele 20 de valorile pe care le produce în cazul în care semințele sunt 10:

     44607423505664567674 

    Dacă aveți produce 10.000 de valori între 0 și 9, aici e distribuție:

     0 - 10151 - 10242 - 10483 la 9964 - 9885 - 10016 - 9967 - 10068 - 9659 - 961 

    Orice formula numere pseudo-aleatoare depinde de valoarea de semințe pentru a începe secvența. Dacă începeți cu aceeași sămân

    Page [1] [2]