Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Sfat
  • Generator de numere aleatorii cu un cuvânt cod. Generator de numere aleatorii pentru loterie

Generator de numere aleatorii cu un cuvânt cod. Generator de numere aleatorii pentru loterie

Generatorul de numere online este un instrument la îndemână care vă permite să obțineți numărul necesar de numere cu o lățime de biți dată și cea mai largă gamă. Există multe utilizări pentru generatorul nostru de numere aleatorii! De exemplu, puteți organiza un concurs pe VKontakte și puteți juca un ursuleț acolo într-un grup de motocicliști pentru o ripostă :)) Vom fi, de asemenea, foarte flatați dacă îl folosiți pentru a decide numărul câștigător la o loterie sau pentru a decide pe ce număr să pariați în cazinou... Sperăm cu adevărat că cineva își va găsi numărul norocos online la noi!

Gama de numere aleatorii:

Cantitate:

Elimină repetările?

Generați numere

Vă rugăm să ne ajutați să creștem: Spune-le prietenilor tăi despre generator!

Aleatoriu | număr aleatoriu online cu 1 clic

Numerele ne înconjoară încă de la naștere și joacă un rol important în viață. Pentru mulți oameni, munca în sine este asociată cu numere, cineva se bazează pe noroc, umplând biletele de loterie cu numere, iar cineva le dă un sens complet mistic. Într-un fel sau altul, uneori nu ne putem descurca fără a folosi un program precum generator de numere aleatorii.

De exemplu, trebuie să organizați o extragere a premiilor între abonații grupului dvs. Generatorul nostru online de numere aleatorii vă va ajuta să selectați rapid și sincer câștigătorii. Trebuie doar, de exemplu, să setați numărul necesar de numere aleatorii (după numărul de câștigători) și intervalul maxim (după numărul de participanți, dacă li se atribuie numere). Frauda în acest caz este complet exclusă.

Acest program poate servi și ca generator de numere aleatoare la loto. De exemplu, ai cumpărat un bilet și vrei să te bazezi în întregime pe aleatorie și noroc în alegerea numerelor. Apoi, randomizatorul nostru de numere vă va ajuta să vă completați biletul de loterie.

Cum se generează un număr aleator: instrucțiuni

Program cu numere aleatorii funcționează foarte simplu. Nici măcar nu trebuie să îl descărcați pe computer - totul se face în fereastra browserului în care este deschisă această pagină. Generarea de numere aleatorii are loc în conformitate cu numărul specificat de numere și intervalul acestora - de la 0 la 999999999. Pentru a genera un număr online, trebuie să:

  1. Selectați intervalul în care doriți să obțineți rezultatul. Poate doriți să trunchiați numerele până la 10 sau, să zicem, 10.000;
  2. Elimină repetările - selectând acest element, vei forța randomizator de numere vă oferă doar combinații unice într-un anumit interval;
  3. Selectați numărul de numere - de la 1 la 99999;
  4. Apăsați butonul „Generează numere”.

Indiferent de câte numere ați dori să obțineți ca rezultat, generatorul de numere prime va oferi întregul rezultat dintr-o dată și îl puteți vedea pe această pagină, răsfoind câmpul cu numere folosind mouse-ul sau touchpad-ul.

Acum puteți folosi numerele gata făcute după cum aveți nevoie. Din câmpul cu numere, puteți copia rezultatul pentru postare într-un grup sau trimitere prin poștă. Și pentru ca nimeni să nu se îndoiască de rezultat, faceți o captură de ecran a acestei pagini, pe care parametrii randomizatorului de numere și rezultatele programului vor fi vizibili clar. Este imposibil să se schimbe numerele în teren, așa că este exclusă posibilitatea de jonglerie. Sperăm că site-ul nostru web și generatorul de numere aleatorii v-au ajutat.

Astăzi, generatoarele de numere aleatorii sunt utilizate în mod activ în diverse domenii ale activității umane. Cu toate acestea, au câștigat o popularitate deosebită în cele care se potrivesc proprietarilor de magazine online, saloane de înfrumusețare, cafenele și alte unități pentru a atrage oferte profitabile, bonusuri și cadouri printre abonații lor. Este generatorul de numere aleatorii care funcționează gratuit online și care vă permite să alegeți cu sinceritate câștigătorul.

Dacă vorbim despre o utilizare unică a generatorului, puteți utiliza cea mai simpla varianta un astfel de program:

Cu toate acestea, capacitățile de calcul și funcționalitatea unui astfel de serviciu nu sunt întotdeauna suficiente pentru a obține datele necesare. Astăzi există un număr destul de mare de programe online specializate care diferă nu numai prin simplitatea interfeței pentru utilizator, ci și prin funcționalitatea largă. Nu trebuie să cauți singur zeci de programe, deoarece special pentru tine, în acest articol, am pregătit o recenzie detaliată. TOP 3 cele mai bune generatoare de numere online conform utilizatorilor:

În primul rând, ar trebui să vă familiarizați cu principalele criterii.:

  1. Selectați din listă... Capacitatea de a oferi utilizatorului propria listă pentru generare, cu selecția ulterioară a unui număr aleatoriu dintr-un set dat.
  2. Selectați dintr-un interval... Capacitatea unui generator de numere aleatoare online de a eșantiona gratuit un anumit interval.
  3. Afișarea mai multor numere... O funcție care este responsabilă pentru furnizarea simultană a mai multor numere aleatoare simultan, dacă utilizatorul trebuie să obțină mai multe valori.
  4. Dezactivați repetarea... Capacitatea generatorului de a exclude din generațiile următoare numărul care a renunțat înainte de aceasta, astfel încât atunci când sunt primite mai multe numere aleatorii la rând, acestea să nu fie duplicate.
  5. Widget pentru site-ul web... Posibilitatea de a conecta generatorul la site-ul sau pagina dvs. de pe rețelele de socializare, astfel încât să fie întotdeauna la îndemână și disponibil pentru lucru.
  6. Link către rezultat... Posibilitatea de a obține un link separat către rezultatul fiecărei generații separate, care confirmă acuratețea informațiilor furnizate la furnizarea rezultatelor concursurilor sau tombolelor.

Înainte de a pregăti acest articol, am analizat multe generatoare care se află pe Internet. Și dintre toate - au ales cele mai bune 3:

TOP-1: generator de numere „Randstaff”


Descriere: Liderul incontestabil în clasamentul nostru al celor mai buni generatori de numere aleatoare este serviciul Randstaff. Se mândrește cu o interfață de utilizator ușor de utilizat, de culoare gri, care nu pare să copleșească ochii. Este convenabil să utilizați nu numai pe un computer, ci și folosind un telefon mobil, ceea ce este deosebit de important dacă trebuie să generați un număr aleatoriu fără acces la un computer.

Demnitate: Acest generator online gratuit de numere aleatorii are o funcționalitate extinsă și oferă utilizatorului posibilitatea de a retrage orice număr de numere aleatoare dintr-o listă sau dintr-o zonă fără a se repeta. Puteți alege singur opțiunea cea mai convenabilă pentru utilizarea serviciului Randstaff printr-un widget special, o aplicație pe rețelele de socializare sau site-ul oficial. După ce parcurgeți o procedură simplă de înregistrare, veți avea acces la contul dvs. personal, unde toate rezultatele dvs. vor fi stocate în siguranță.

Defecte: Nicio posibilitate. Și puteți salva rezultatul generației doar pentru 3 zile (dar de obicei este suficient). Dacă doriți să salvați rezultatul pentru totdeauna, trebuie să vă înregistrați în contul personal (cost - 300 de ruble).

TOP-2: Generator de numere „Kastlot”.


Descriere: Locul al doilea aparține pe bună dreptate generatorului de numere aleatoare Kastlot. Nu este un serviciu independent, ci o parte a unui portal cu utilitate variată, care generează rime frumoase, autentificări unice și pur și simplu stochează colecții de filme sau citate interesante. Interfața nu diferă mult de serviciile similare, dar se poate lăuda cu o funcționalitate mai largă.

Demnitate: Castelul permite utilizatorului să selecteze numere aleatorii dintr-un interval dat. Poate fi unul sau mai multe numere. Puteți alege modul de funcționare al serviciului cu sau fără repetare. Un avantaj convenabil al generatorului Castlot este capacitatea de a obține o legătură separată pentru fiecare rezultat. Există o caracteristică exclusivă numită „mai multă aleatorie”. Când este activat, procesul de generare nu începe decât în ​​momentul în care utilizatorul mută cursorul mouse-ului într-o anumită poziție. În plus, gama de instrumente de service suplimentare include un widget pentru site-ul web și o aplicație proprietară VKontakte.

Defecte: Singurul dezavantaj evident al unui astfel de generator este lipsa unei alegeri din listă.

TOP-3: generator "Randomochislo.rf"


Descriere: Serviciul „Număr aleatoriu” vă permite să generați valori online în intervalul de la 1 la 99999. Designul este minimalism, ceea ce este bun pentru el. Fără distrageri. Este la fel de convenabil să îl utilizați pe un computer sau smartphone. Numerele mari negre pe un fundal alb sunt clar vizibile, astfel încât nici persoanele cu deficiențe de vedere nu vor experimenta disconfort în timpul utilizării acestuia.

Demnitate: Funcționalitatea unui astfel de generator de numere aleatoare online vă permite să selectați o valoare aleatoare dintr-o listă și un interval specific. Dacă trebuie să obțineți mai multe numere aleatoare online simultan, numărul necesar trebuie specificat în câmpul corespunzător, unde implicit este 1. Repetarea este dezactivată la cererea utilizatorului.

Defecte: Nu veți putea conecta un astfel de serviciu la site-ul sau comunitatea dvs. de pe rețelele sociale, deoarece un astfel de generator de numere aleatorii nu are propriul widget. Nu există nici linkuri către rezultat, ceea ce, împreună cu alte neajunsuri, aduce acest serviciu pe ultimul loc în ratingul nostru.

Concluzie

În opinia noastră, cel mai bun și optim serviciu pentru generarea unui număr aleatoriu este. Are toate funcțiile pe care le au alte generatoare. Singurul său dezavantaj este incapacitatea de a dezactiva repetarea numerelor în timpul generării. Dar, așa cum am scris mai sus, această nuanță nu este foarte importantă pentru un utilizator obișnuit. Poate am omis ceva din acest articol? Dacă da - scrieți în comentarii!

Numerele ne însoțesc peste tot - numere de case și apartamente, numere de telefon, mașini, pașapoarte, carduri de plastic, date, parole de e-mail. Alegem noi înșine unele combinații de numere, dar majoritatea le obținem aleatoriu. Fără să ne dăm seama, folosim zilnic numere generate aleatoriu. Dacă venim cu coduri PIN, atunci codurile unice pentru un card de credit sau salariu sunt generate de sisteme fiabile care exclud accesul la parole. Generatoarele de numere aleatorii oferă protecție în zonele care necesită viteză de procesare, securitate și procesare independentă.

Procesul de generare a numerelor pseudoaleatoare este supus anumitor legi și a fost folosit de mult timp, de exemplu, atunci când se dețin loterii. În trecutul recent, extragerile erau efectuate folosind tobe de loterie sau trageri la sorți. Acum, în multe țări, numerele câștigătoare ale loteriilor de stat sunt determinate tocmai de un set de numere aleatorii generate.

Avantajele metodei

Deci, un generator de numere aleatorii este un mecanism modern independent pentru determinarea aleatorie a combinațiilor de numere. Unicitatea și perfecțiunea acestei metode constă în imposibilitatea interferențelor externe în proces. Generatorul este un set de programe construite, de exemplu, pe diode de zgomot. Dispozitivul generează un flux de zgomote aleatorii, ale căror valori curente sunt convertite în numere și formează combinații.

Generarea numerelor oferă rezultate instantanee - este nevoie de câteva secunde pentru a finaliza combinația. Dacă vorbim de loterie, participanții pot afla imediat dacă numărul biletului coincide cu cel câștigător. Acest lucru permite extragerile să fie organizate ori de câte ori doresc participanții. Dar principalul avantaj al metodei este impredictibilitatea și imposibilitatea de a calcula algoritmul de selectare a numerelor.

Cum sunt generate numerele pseudoaleatoare

De fapt, numerele aleatoare nu sunt aleatoare - seria începe cu un număr dat și este generată de un algoritm. Un generator de numere pseudoaleatoare (PRNG sau PRNG - generator de numere pseudoaleatoare) este un algoritm care generează o secvență de numere aparent neînrudite, care sunt de obicei distribuite uniform. În informatică, numerele pseudoaleatoare sunt folosite în multe aplicații: în criptografie, simulare, Monte Carlo etc. Calitatea rezultatului depinde de proprietățile PRNG.

Sursa de generare poate fi zgomotul fizic de la radiația cosmică la zgomotul dintr-un rezistor, dar astfel de dispozitive nu sunt aproape niciodată folosite de aplicațiile de securitate a rețelei. Aplicațiile criptografice folosesc algoritmi speciali care generează secvențe care nu pot fi aleatorii statistic. Cu toate acestea, un algoritm bine ales vă permite să obțineți serii de numere care trec majoritatea testelor de aleatorie. Perioada de repetiție în astfel de secvențe este mai mare decât intervalul de operare din care sunt luate numerele.

Multe procesoare moderne conțin un PRNG, de exemplu, RdRand. Alternativ, seturi de numere aleatorii sunt create și publicate într-un bloc de unică folosință (dicționar). Sursa numerelor în acest caz este limitată și nu oferă securitate completă a rețelei.

Istoria PRNG

Jocul de masă Senet, care a fost răspândit în Egiptul Antic în anul 3500 î.Hr., poate fi considerat prototipul generatorului de numere aleatorii. Conform condițiilor, doi jucători au participat, mișcările au fost determinate prin aruncarea a patru bețe plate alb-negru - erau similare cu PRNG-ul de atunci. Bețișoarele au fost aruncate în același timp și punctele au fost calculate: dacă unul cădea cu partea albă, 1 punct și o mutare suplimentară, două albe - două puncte și așa mai departe. Scorul maxim de cinci puncte a fost obținut de jucătorul care a aruncat patru bețe cu partea neagră.

Generatorul ERNIE a fost folosit la loterie din Marea Britanie de mulți ani astăzi. Există două metode principale de generare a numerelor câștigătoare: congruent liniar și congruent aditiv. Acestea și alte metode se bazează pe principiul aleatoriei alegerii și sunt furnizate de software care produce la infinit numere, a căror succesiune este imposibil de ghicit.

PRNG funcționează continuu, de exemplu, în aparatele de slot. Conform legislației SUA, aceasta este o cerință pe care toți furnizorii de software trebuie să o respecte.


Rețineți că, în mod ideal, curba de densitate a distribuției numerelor aleatoare ar arăta ca cea prezentată în Fig. 22.3. Adică, în cazul ideal, fiecare interval conține același număr de puncte: N i = N/k , Unde N- numărul total de puncte, k- numărul de intervale, i= 1,…, k .

Orez. 22.3. Diagrama de frecvență a numerelor aleatoare,
generat de un generator ideal teoretic

Trebuie amintit că generarea unui număr arbitrar aleatoriu constă în două etape:

  • generarea unui număr aleator normalizat (adică distribuit uniform de la 0 la 1);
  • conversia numerelor aleatoare normalizate r i la numere aleatorii X i, care sunt distribuite în conformitate cu legea de distribuție a utilizatorului (arbitrară) cerută sau în intervalul necesar.

Generatoarele de numere aleatorii sunt împărțite în:

  • fizic;
  • tabular;
  • algoritmic.

RNG fizic

Un exemplu de RNG fizic este: o monedă (capete - 1, cozi - 0); zaruri; o tobă cu o săgeată împărțită în sectoare cu numere; generator de zgomot hardware (HS), care este utilizat ca dispozitiv termic zgomotos, de exemplu, un tranzistor (Fig. 22.4-22.5).

Orez. 22.4. Schema metodei hardware pentru generarea numerelor aleatorii
Orez. 22.5. Diagrama obținerii numerelor aleatoare prin metoda hardware
Sarcina „Generarea numerelor aleatorii folosind o monedă”

Utilizați o monedă pentru a genera un număr aleatoriu de 3 cifre distribuit uniform de la 0 la 1. Precizia este de trei zecimale.

Prima modalitate de a rezolva problema
Întoarce o monedă de 9 ori, iar dacă moneda iese în cozi, atunci notează „0”, dacă da cap, atunci „1”. Deci, să presupunem că, în urma experimentului, am obținut o secvență aleatorie 100110100.

Desenați un interval de la 0 la 1. Citind numerele în succesiune de la stânga la dreapta, împărțiți intervalul în jumătate și alegeți de fiecare dată una dintre părțile intervalului următor (dacă a scăzut 0, atunci cea din stânga, dacă a scăzut 1, apoi cel potrivit). Astfel, puteți ajunge în orice moment al intervalului, cu cât de precis doriți.

Asa de, 1 : intervalul este înjumătățit - și, - este selectată jumătatea dreaptă, intervalul este îngustat:. Următorul număr, 0 : intervalul este înjumătățit - și, - este selectată jumătatea stângă, intervalul este îngustat:. Următorul număr, 0 : intervalul este înjumătățit - și, - este selectată jumătatea stângă, intervalul este îngustat:. Următorul număr, 1 : intervalul este înjumătățit - și, - este selectată jumătatea dreaptă, intervalul este îngustat:.

Prin condiția acurateții problemei, s-a găsit soluția: este orice număr din interval, de exemplu, 0,625.

În principiu, dacă te apropii strict, atunci împărțirea intervalelor trebuie continuată până când limitele din stânga și dreapta ale intervalului găsit COINCID între ele până la a treia zecimală. Adică din punct de vedere al acurateței, numărul generat nu va mai fi distins de niciun număr din intervalul în care se află.

A doua modalitate de a rezolva problema
Să împărțim secvența binară rezultată 100110100 în triade: 100, 110, 100. După conversia acestor numere binare în zecimale obținem: 4, 6, 4. Înlocuind „0.” în față, obținem: 0,464. Doar numerele de la 0,000 la 0,777 pot fi obținute folosind această metodă (deoarece maximul care poate fi stors din trei cifre binare este 111 2 = 7 8) - adică, de fapt, aceste numere sunt reprezentate în sistemul de numere octale. Pentru traducere octal numere în zecimal vom executa reprezentarea:
0,464 8 = 4 · 8 –1 + 6 · 8 –2 + 4 · 8 –3 = 0,6015625 10 = 0,602 10.
Deci, numărul necesar este egal cu: 0,602.

RNG tabelar

RNG-urile tabelare folosesc tabele compilate special care conțin numere verificate necorelate, adică independente unele de altele, ca sursă de numere aleatorii. Masa 22.1 prezintă un mic fragment dintr-un astfel de tabel. Prin parcurgerea tabelului de la stânga la dreapta de sus în jos, puteți obține o distribuție uniformă de la 0 la 1 numere aleatorii cu numărul necesar de zecimale (în exemplul nostru, folosim trei zecimale pentru fiecare număr). Deoarece numerele din tabel nu depind unele de altele, tabelul poate fi parcurs în diferite moduri, de exemplu, de sus în jos sau de la dreapta la stânga sau, să zicem, puteți selecta numere care sunt în poziții pare.

Tabelul 22.1.
Numere aleatorii. uniform
distribuite de la 0 la 1 numere aleatorii
Numere aleatorii Distribuit uniform
de la 0 la 1 numere aleatorii
9 2 9 2 0 4 2 6 0.929
9 5 7 3 4 9 0 3 0.204
5 9 1 6 6 5 7 6 0.269
… …

Avantajul acestei metode este că oferă numere cu adevărat aleatorii, deoarece tabelul conține numere necorelate verificate. Dezavantajele metodei: este nevoie de multă memorie pentru a stoca un număr mare de cifre; mari dificultăți în generarea și verificarea unor astfel de tabele, repetările la utilizarea unui tabel nu mai garantează aleatoritatea secvenței numerice și, prin urmare, fiabilitatea rezultatului.

Există un tabel care conține 500 de numere verificate absolut aleatoare (preluate din cartea lui I. G. Venetsky, V. I. Venetskaya „Concepte și formule matematice și statistice de bază în analiza economică”).

RNG algoritmic

Numerele generate folosind aceste RNG-uri sunt întotdeauna pseudoaleatoare (sau cvasialeatoare), adică fiecare număr generat ulterior depinde de cel anterior:

r i + 1 = f(r i) .

Secvențele formate din astfel de numere formează bucle, adică există în mod necesar un ciclu care se repetă de un număr infinit de ori. Ciclurile care se repetă se numesc perioade.

Avantajul datelor RNG este viteza; generatoarele practic nu necesită resurse de memorie, sunt compacte. Dezavantaje: numerele nu pot fi numite pe deplin aleatoare, deoarece există o dependență între ele, precum și prezența unor perioade în succesiunea numerelor cvasialeatoare.

Luați în considerare câteva metode algoritmice pentru obținerea unui RNG:

  • metoda pătratelor mijlocii;
  • metoda produselor de mijloc;
  • metoda de amestecare;
  • metoda liniară congruentă.

Metoda pătratului mediu

Există un număr din patru cifre R 0. Acest număr este pătrat și introdus în R unu . Mai departe de R 1 este luat în mijloc (patru cifre din mijloc) - un nou număr aleatoriu - și scris în R 0. Apoi se repetă procedura (vezi fig. 22.6). Rețineți că, de fapt, nu este necesar să luați ca număr aleatoriu ghij, A 0.ghij- cu un zero și un punct zecimal alocat la stânga. Acest fapt este reflectat ca în fig. 22.6 și în cifre similare ulterioare.

Orez. 22.6. Schema pătratelor medii

Dezavantaje ale metodei: 1) dacă la o iterație numărul R 0 devine egal cu zero, apoi generatorul degenerează, deci este importantă alegerea corectă a valorii inițiale R 0; 2) generatorul va repeta secvența prin M n pași (în cel mai bun caz), unde n- capacitate de cifre R 0 , M- baza sistemului numeric.

De exemplu, în Fig. 22.6: dacă numărul R 0 va fi reprezentat în notație binară, succesiunea numerelor pseudoaleatoare se va repeta în 2 4 = 16 pași. Rețineți că repetarea secvenței poate apărea mai devreme dacă numărul inițial nu este ales bine.

Metoda descrisă mai sus a fost propusă de John von Neumann și datează din 1946. Deoarece această metodă s-a dovedit a fi nesigură, a fost rapid abandonată.

Metoda produselor de mijloc

Număr R 0 se înmulțește cu R 1, din rezultatul obținut R 2 extrageți mijlocul R 2 * (acesta este un alt număr aleatoriu) și înmulțit cu R unu . Toate numerele aleatoare ulterioare sunt calculate folosind această schemă (vezi Fig. 22.7).

Orez. 22.7. Metoda produselor de mijloc

Metoda de agitare

Metoda shuffle folosește operații pentru a muta ciclic conținutul unei celule la stânga și la dreapta. Ideea metodei este următoarea. Lăsați celula să depoziteze sămânța R 0. Deplasând ciclic conținutul celulei la stânga cu 1/4 din lungimea celulei, obținem un nou număr R 0 *. De asemenea, deplasarea ciclică a conținutului unei celule R 0 la dreapta cu 1/4 din lungimea celulei, obținem al doilea număr R 0 **. Suma numerelor R 0 * și R 0 ** dă un nou număr aleatoriu R unu . Mai departe R 1 este introdus R 0 și se repetă întreaga secvență de operații (vezi Figura 22.8).


Orez. 22.8. Diagrama metodei de amestecare

Vă rugăm să rețineți că numărul rezultat din însumare R 0 * și R 0 **, este posibil să nu se potrivească complet în celulă R unu . În acest caz, cifrele suplimentare ar trebui eliminate din numărul primit. Să explicăm acest lucru pentru Fig. 22.8, unde toate celulele sunt reprezentate de opt cifre binare. Lăsa R 0 * = 10010001 2 = 145 10 , R 0 ** = 10100001 2 = 161 10 , atunci R 0 * + R 0 ** = 100110010 2 = 306 10 ... După cum puteți vedea, numărul 306 ocupă 9 cifre (în sistemul de numere binar), iar celula R 1 (ca R 0) poate conține maximum 8 biți. Prin urmare, înainte de a introduce valoarea în R 1 este necesar să eliminați un „în plus”, bitul din stânga din numărul 306, ca urmare a căruia în R 1 va merge nu 306, ci 00110010 2 = 50 10. De asemenea, rețineți că, în limbi precum Pascal, „trunchierea” biților suplimentari atunci când o celulă este depășită se face automat în conformitate cu tipul specificat de variabilă.

Metoda liniară congruentă

Metoda liniară congruentă este una dintre cele mai simple și mai frecvent utilizate proceduri pentru simularea numerelor aleatoare. Această metodă folosește modul ( X, y), care returnează restul primului argument împărțit la al doilea. Fiecare număr aleatoriu ulterior este calculat pe baza numărului aleatoriu anterior utilizând următoarea formulă:

r i+ 1 = mod ( k · r i + b, M) .

Se numește o succesiune de numere aleatoare obținute folosind această formulă succesiune liniară congruentă... Mulți autori numesc o secvență liniară congruentă pentru b = 0 metoda multiplicativă congruentă, și la b ≠ 0 — metoda mixta congruenta.

Pentru un generator de înaltă calitate, trebuie să alegeți coeficienți potriviți. Este necesar ca numărul M a fost destul de mare, deoarece perioada nu poate avea mai mult M elemente. Pe de altă parte, împărțirea folosită în această metodă este o operațiune destul de lentă, așa că ar fi logic ca o mașină de calcul binară să aleagă M = 2 N, deoarece în acest caz găsirea restului diviziunii este redusă în interiorul computerului la o operație logică binară „ȘI”. De asemenea, este obișnuit să alegeți cel mai mare număr prim M mai putin de 2 N: în literatura de specialitate se dovedeşte că în acest caz biţii mai puţin semnificativi ai numărului aleator rezultat r i+ 1 se comportă la fel de aleatoriu ca și cei mai vechi, ceea ce are un efect pozitiv asupra întregii secvențe de numere aleatoare în ansamblu. Un exemplu este unul dintre numerele Mersenne egal cu 2 31 - 1, și astfel M= 2 31 - 1.

Una dintre cerințele pentru secvențele liniare congruente este cea mai mare lungime posibilă a perioadei. Durata perioadei depinde de valori M , kși b... Teorema pe care o prezentăm mai jos ne permite să stabilim dacă este posibil să realizăm o perioadă de lungime maximă pentru anumite valori M , kși b .

Teorema... Secvență liniară congruentă definită prin numere M , k , bși r 0, are o perioadă de lungime M dacă și numai dacă:

  • numerele bși M reciproc simplu;
  • k- 1 multiplu p pentru fiecare simplu p care este un divizor M ;
  • k- 1 multiplu de 4 dacă M multiplu de 4.

În cele din urmă, să încheiem cu câteva exemple de utilizare a metodei congruențiale liniare pentru a genera numere aleatorii.

S-a constatat că o serie de numere pseudoaleatoare generate din datele din exemplul 1 vor fi repetate la fiecare M/ 4 numere. Număr q este setat arbitrar înainte de a începe calculele, dar trebuie avut în vedere că seria dă impresia că este aleatorie pentru mari k(ceea ce înseamnă că q). Rezultatul poate fi ușor îmbunătățit dacă b ciudat și k= 1 + 4 q - în acest caz, rândul se va repeta la fiecare M numerele. După o lungă căutare k cercetătorii s-au stabilit pe valorile 69069 și 71365.

Un generator de numere aleatoare care utilizează datele din Exemplul 2 va produce numere aleatoare nerepetate cu o perioadă de 7 milioane.

Metoda multiplicativă pentru generarea numerelor pseudoaleatoare a fost propusă de D. H. Lehmer în 1949.

Verificarea calitatii generatorului

Calitatea întregului sistem și acuratețea rezultatelor depind de calitatea RNG. Prin urmare, secvența aleatoare generată de RNG trebuie să îndeplinească o serie de criterii.

Verificările efectuate sunt de două tipuri:

  • verificări pentru uniformitatea distribuției;
  • verificări pentru independența statistică.

Verificări de uniformitate a distribuției

1) RNG ar trebui să producă aproape următoarele valori ale parametrilor statistici caracteristici unei legi aleatorii uniforme:

2) Test de frecventa

Testul de frecvență vă permite să aflați câte numere se încadrează în interval (m r – σ r ; m r + σ r) , adică (0,5 - 0,2887; 0,5 + 0,2887) sau, în cele din urmă, (0,2113; 0,7887). Deoarece 0,7887 - 0,2113 = 0,5774, ajungem la concluzia că, într-un RNG bun, aproximativ 57,7% din toate numerele aleatoare scăzute ar trebui să se încadreze în acest interval (vezi Fig. 22.9).

Orez. 22.9. Diagrama de frecvență a unui RNG ideal
în cazul verificării lui pentru un test de frecvenţă

De asemenea, este necesar să se țină cont de faptul că numărul de numere care se încadrează în interval (0; 0,5) ar trebui să fie aproximativ egal cu numărul de numere care se încadrează în interval (0,5; 1).

3) Testul chi-pătrat

Testul chi-pătrat (testul χ 2) este unul dintre cele mai cunoscute teste statistice; este metoda principală folosită în combinaţie cu alte criterii. Testul chi-pătrat a fost propus în 1900 de Karl Pearson. Lucrarea sa remarcabilă este privită ca fundamentul statisticii matematice moderne.

Pentru cazul nostru, testul chi-pătrat ne va permite să aflăm cât de mult este real RNG-ul este aproape de standardul RNG, adică dacă îndeplinește sau nu cerințele de distribuție uniformă.

Diagrama de frecventa referinţă RNG este prezentat în Fig. 22.10. Deoarece legea de distribuție a RNG de referință este uniformă, probabilitatea (teoretică). p i lovind numere în i al-lea interval (toate aceste intervale k) este egal cu p i = 1/k ... Și astfel, în fiecare dintre k intervalele vor scădea neted pe p i · N numere ( N Este numărul total de numere generate).

Orez. 22.10. Diagrama de frecvență a RNG de referință

Un RNG real va produce numere distribuite (și nu neapărat uniform!) k intervale și fiecare interval va include n i numere (în sumă n 1 + n 2 + ... + n k = N ). Cum putem determina cât de bun este RNG-ul testat și cât de aproape de cel de referință? Este destul de logic să luăm în considerare pătratele diferențelor dintre numărul de numere primit. n iși „referință” p i · N ... Să le adăugăm și, ca rezultat, obținem:

χ 2 exp. = ( n 1 - p unu · N) 2 + (n 2 - p 2 N) 2 + ... + ( n k – p k · N) 2 .

Din această formulă rezultă că, cu cât diferența dintre fiecare dintre termeni este mai mică (și, prin urmare, valoarea lui χ 2 exp.), cu atât legea de distribuție a numerelor aleatoare generate de RNG real tinde să fie mai puternică.

În expresia anterioară, fiecăruia dintre termeni i se atribuie aceeași pondere (egal cu 1), care de fapt poate să nu corespundă realității; prin urmare, pentru statistica chi-pătrat, este necesar să se normalizeze fiecare i-al-lea termen prin împărțirea lui la p i · N :

În cele din urmă, scriem expresia rezultată mai compact și o simplificăm:

Am obținut valoarea testului chi-pătrat pt experimental date.

Masa 22.2 sunt date teoretic valorile chi-pătrat (teoria χ 2), unde ν = N- 1 este numărul de grade de libertate, p Este nivelul de încredere definit de utilizator care indică cât de mult ar trebui să satisfacă RNG cerințele de distribuție uniformă sau p — aceasta este probabilitatea ca valoarea experimentală a lui χ 2 exp. va fi mai mică decât teoria χ 2 tabelată (teoretică). sau egal cu el.

Tabelul 22.2.
Câteva puncte procentuale ale distribuției χ 2
p = 1% p = 5% p = 25% p = 50% p = 75% p = 95% p = 99%
ν = 1 0.00016 0.00393 0.1015 0.4549 1.323 3.841 6.635
ν = 2 0.02010 0.1026 0.5754 1.386 2.773 5.991 9.210
ν = 3 0.1148 0.3518 1.213 2.366 4.108 7.815 11.34
ν = 4 0.2971 0.7107 1.923 3.357 5.385 9.488 13.28
ν = 5 0.5543 1.1455 2.675 4.351 6.626 11.07 15.09
ν = 6 0.8721 1.635 3.455 5.348 7.841 12.59 16.81
ν = 7 1.239 2.167 4.255 6.346 9.037 14.07 18.48
ν = 8 1.646 2.733 5.071 7.344 10.22 15.51 20.09
ν = 9 2.088 3.325 5.899 8.343 11.39 16.92 21.67
ν = 10 2.558 3.940 6.737 9.342 12.55 18.31 23.21
ν = 11 3.053 4.575 7.584 10.34 13.70 19.68 24.72
ν = 12 3.571 5.226 8.438 11.34 14.85 21.03 26.22
ν = 15 5.229 7.261 11.04 14.34 18.25 25.00 30.58
ν = 20 8.260 10.85 15.45 19.34 23.83 31.41 37.57
ν = 30 14.95 18.49 24.48 29.34 34.80 43.77 50.89
ν = 50 29.71 34.76 42.94 49.33 56.33 67.50 76.15
ν > 30 ν + sqrt (2 ν ) · X p+ 2/3 X 2 p- 2/3 + O(1 / sqrt ( ν ))
X p = –2,33 –1,64 –0,674 0.00 0.674 1.64 2.33

Considerat acceptabil p de la 10% la 90%.

Dacă χ 2 exp. mult mai mult decât teoria χ 2. (acesta este p- grozav), apoi generatorul nu satisface cerință de distribuție uniformă, deoarece valorile observate n i merge prea departe de teoretic p i · N și nu poate fi considerată aleatorie. Cu alte cuvinte, intervalul de încredere este atât de mare încât constrângerile asupra numerelor devin foarte laxe, cerințele privind numerele sunt slabe. În acest caz, se va observa o eroare absolută foarte mare.

Chiar și D. Knut în cartea sa „The Art of Programming” a remarcat că având χ 2 exp. nici mic, în general, nu este bun, deși pare, la prima vedere, minunat din punct de vedere al uniformității. Într-adevăr, luați o serie de numere 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, ... - sunt ideale din punct de vedere al uniformitate, iar χ 2 exp. va fi practic zero, dar este puțin probabil să le recunoașteți ca aleatoare.

Dacă χ 2 exp. mult mai mică decât teoria χ 2. (acesta este p- puțin), apoi generatorul nu satisface cerința unei distribuții uniforme aleatorii, din moment ce valorile observate n i prea aproape de teoretic p i · N și nu poate fi considerată aleatorie.

Dar dacă χ 2 exp. se află într-un anumit interval, între două valori ale χ 2 teor. care corespund, de exemplu, p= 25% și p= 50%, atunci putem presupune că valorile numerelor aleatoare generate de senzor sunt complet aleatorii.

În plus, trebuie avut în vedere faptul că toate valorile p i · N trebuie să fie suficient de mare, de exemplu, mai mult de 5 (aflat empiric). Abia atunci (cu un eșantion statistic suficient de mare) condițiile experimentale pot fi considerate satisfăcătoare.

Deci, procedura de verificare este următoarea.

Teste de independență statistică

1) Verificați frecvența de apariție a unei cifre într-o secvență

Să ne uităm la un exemplu. Numărul aleatoriu 0,2463389991 este format din cifrele 2463389991, iar numărul 0,5467766618 este format din cifrele 5467766618. Combinând secvențele de cifre, avem: 24633389996565189996

Este clar că probabilitatea teoretică p i caderi i--a cifră (de la 0 la 9) este 0,1.

2) Verificarea aspectului serii de numere identice

Să notăm prin n L numărul de serii de cifre consecutive de lungime L... Totul trebuie verificat L de la 1 la m, Unde m Este un număr specificat de utilizator: numărul maxim de cifre identice care apar într-o serie.

În exemplul „24633899915467766618” au fost găsite 2 serii de lungime 2 (33 și 77), adică n 2 = 2 și 2 seria 3 lungă (999 și 666), adică n 3 = 2 .

Probabilitatea de apariție a unei serii cu lungimea de L este egal cu: p L= 9 10 - L (teoretic). Adică, probabilitatea unei serii de un caracter lungime este: p 1 = 0,9 (teoretic). Probabilitatea unei serii de două caractere lungime este: p 2 = 0,09 (teoretic). Probabilitatea unei siruri de trei caractere lungime este: p 3 = 0,009 (teoretic).

De exemplu, probabilitatea unei serii de un caracter lungime este p L= 0,9, deoarece poate exista doar un caracter din 10 și există 9 caractere în total (zero nu contează). Și probabilitatea ca două simboluri identice „XX” să apară într-un rând este 0,1 · 0,1 · 9, adică probabilitatea de 0,1 ca simbolul „X” să apară în prima poziție este înmulțită cu probabilitatea 0,1 ca același simbolul va apărea în a doua poziție „X” și înmulțit cu numărul de astfel de combinații 9.

Frecvența de apariție a seriei se calculează conform formulei „chi-pătrat” analizată anterior folosind valorile p L .

Notă: generatorul poate fi verificat de mai multe ori, totuși verificările nu sunt complete și nu garantează că generatorul produce numere aleatorii. De exemplu, un generator care emite secvența 12345678912345 ... va fi considerat ideal în timpul verificărilor, ceea ce, evident, nu este în întregime adevărat.

În concluzie, observăm că al treilea capitol al cărții lui Donald E. Knuth „Arta programării” (volumul 2) este complet dedicat studiului numerelor aleatoare. Acesta explorează diverse metode de generare a numerelor aleatoare, criterii statistice pentru aleatorie și conversia numerelor aleatoare distribuite uniform în alte tipuri de variabile aleatoare. Peste două sute de pagini au fost dedicate prezentării acestui material.

Generatorul de numere aleatorii pentru biletele de loterie este oferit gratuit în format „ca atare”. Dezvoltatorul nu poartă nicio responsabilitate pentru pierderile materiale și nemateriale ale utilizatorilor scriptului. Puteți utiliza acest serviciu pe propriul risc. Totuși, ceva, și cu siguranță nu-ți asumi riscul :-).

Numere aleatorii pentru biletele de loterie online

Acest software (PRNG în JS) este un generator de numere pseudo-aleatoare implementat de capabilitățile limbajului de programare Javascript. Generatorul produce o distribuție uniformă a numerelor aleatoare.

Acest lucru vă permite să eliminați o „pană cu pană” pe RNG cu o distribuție uniformă de la compania de loterie pentru a răspunde cu numere aleatorii cu o distribuție uniformă. Această abordare elimină subiectivitatea jucătorului, deoarece oamenii au anumite preferințe în alegerea numerelor și numerelor (ziua de naștere a rudelor, date memorabile, ani etc.), care afectează selecția manuală a numerelor.

Instrumentul gratuit îi ajută pe jucători să aleagă numere aleatorii pentru loterie. Scriptul generator de numere aleatorii are un set de moduri prestabilite pentru Gosloto 5 din 36, 6 din 45, 7 din 49, 4 din 20, Sportloto 6 din 49. Puteți selecta un mod de generare de numere aleatorii cu setări gratuite pentru alte opțiuni de loterie.

Predicții câștigătoare la loterie

Un generator de numere aleatorii cu o distribuție uniformă poate servi drept horoscop pentru o tragere la loterie, cu toate acestea, probabilitatea ca prognoza să se adeverească este mică. Dar totuși, utilizarea unui generator de numere aleatoare are șanse mari de câștig în comparație cu multe alte strategii de joc de loterie și, în plus, te eliberează de agonia numerelor și combinațiilor complexe norocoase. Din partea mea, nu vă sfătuiesc să cedeți tentației și să cumpărați previziuni plătite, este mai bine să cheltuiți acești bani pe un manual de combinatorie. Din el puteți învăța o mulțime de lucruri interesante, de exemplu, probabilitatea de a câștiga jackpot-ul în Gosloto 5 din 36 este 1 La 376 992 ... Și probabilitatea de a obține premiul minim prin potrivirea a 2 numere este 1 La 8 ... Prognoza bazată pe RNG-ul nostru are aceleași probabilități de câștig.

Pe Internet, există cereri de numere aleatorii pentru loterie, ținând cont de extragerile trecute. Dar cu condiția ca loteria să folosească un RNG cu o distribuție uniformă și probabilitatea ca o anumită combinație să cadă nu depinde de circulația către circulație, atunci încercarea de a ține cont de rezultatele extragerilor anterioare este inutilă. Și acest lucru este destul de logic, deoarece nu este profitabil pentru companiile de loterie ca participanții să își crească probabilitatea de câștig prin metode simple.

Se vorbește adesea că organizatorii de loterie manipulează rezultatele. Dar, de fapt, acest lucru nu are niciun sens, dimpotrivă, dacă companiile de loterie ar influența rezultatele loteriei, atunci ar fi posibil să găsim o strategie câștigătoare, dar până acum nimeni nu reușește. Prin urmare, este foarte benefic pentru organizatorii de loterie ca bilele să cadă cu o probabilitate egală. Apropo, randamentul estimat la loteria 5 din 36 este de 34,7%. Astfel, compania de loterie reține 65,3% din încasările din vânzarea biletelor, o parte din fonduri (de obicei jumătate) este alocată formării jackpot-ului, restul banilor se duc la cheltuieli de organizare, publicitate și profitul net al companiei. Statisticile de circulație confirmă perfect aceste cifre.

De aici concluzia - nu cumpăra previziuni fără sens, folosește un generator gratuit de numere aleatorii, ai grijă de nervii tăi. Lasă numerele noastre aleatorii să fie numerele tale norocoase. Să aveți o dispoziție bună și o zi bună!

Top articole similare