Numerele ne înconjoară încă de la naștere și joacă un rol important în viață. Pentru mulți oameni, munca în sine este legată de 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 tragere la sorți între abonații grupului dvs. Generatorul nostru online de numere aleatorii vă va ajuta să alegeți câștigătorii rapid și sincer. Trebuie doar, de exemplu, să setați numărul dorit 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 aleatorii pentru loto. De exemplu, ai cumpărat un bilet și vrei să te bazezi complet pe șansă și noroc în alegerea numerelor. Apoi, randomizatorul nostru de numere vă va ajuta să vă completați bilet de loterie.

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

program cu numere aleatorii functioneaza 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ă. Numerele aleatoare sunt generate în funcție de numărul specificat de numere și intervalul lor - de la 0 la 999999999.

Pentru a genera un număr online, aveți nevoie de:

  1. Selectați intervalul în care doriți să obțineți rezultatul. Poate doriți să tăiați numerele până la 10 sau, să zicem, 10000;
  2. Exclude repetări - selectând acest articol, vei forța **randomizatorul de numere** să-ți ofere doar combinații unice într-un anumit interval;
  3. Selectați numărul de numere - de la 1 la 99999;
  4. Faceți clic pe butonul Generare numere.

Indiferent de câte numere doriți 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ă derulând câmpul cu numere folosind mouse-ul sau touchpad-ul.

Acum puteți utiliza numerele gata făcute așa cum aveți nevoie. Din câmpul de număr, puteți copia rezultatul pentru postare într-un grup sau e-mail. Ș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, deci este exclusă posibilitatea manipulării. Sperăm că site-ul nostru web și generatorul de numere aleatorii v-au ajutat.

Vă rugăm să ajutați serviciul cu un singur clic: Spune-le prietenilor tăi despre generator!

Generator de numere online cu 1 clic

Generatorul de numere aleatorii, care este prezentat pe site-ul nostru web, este foarte convenabil. De exemplu, poate fi folosit la extrageri și la loterie pentru a determina câștigătorul. Câștigătorii sunt determinați în acest fel: programul oferă unul sau mai multe numere în orice interval specificat. Manipularea rezultatelor poate fi imediat eliminată. Și datorită acestui fapt, câștigătorul este determinat într-o alegere corectă.

Uneori trebuie să obțineți un anumit număr de numere aleatoare simultan. De exemplu, doriți să completați un bilet de loterie „4 din 35”, având încredere în șansă. Puteți verifica: dacă aruncați o monedă de 32 de ori, care este probabilitatea ca 10 reversuri să cadă la rând (capete/cozi pot fi atribuite de numerele 0 și 1)?

Instrucțiuni video online cu numere aleatorii - randomizare

Generatorul nostru de numere este foarte ușor de utilizat. Nu necesită descărcarea unui program pe computer - poate fi folosit online. Pentru a obține numărul de care aveți nevoie, trebuie să setați intervalul de numere aleatorii, numărul și, dacă doriți, separatorul de numere și să excludeți repetările.

Pentru a genera numere aleatorii într-un interval de frecvență specific:

  • Alegeți o gamă;
  • Specificați numărul de numere aleatoare;
  • Funcția „Separator de numere” servește pentru frumusețea și comoditatea afișajului lor;
  • Dacă este necesar, activați/dezactivați repetările cu bifa;
  • Faceți clic pe butonul „Generați”.

Ca rezultat, veți primi numere aleatorii într-un interval dat. Rezultatul generatorului de numere poate fi copiat sau trimis pe e-mail. Cel mai bine ar fi să faceți o captură de ecran sau un videoclip al acestui proces de generare. Randomizorul nostru vă va rezolva orice problemă!

Te-ai întrebat vreodată cum funcționează Math.random()? Ce este un număr aleator și cum se obține? Și imaginați-vă o întrebare la un interviu - scrieți generatorul de numere aleatorii în câteva rânduri de cod. Și deci, ce este, un accident și este posibil să-l prezicem?

Sunt foarte fascinat de diverse puzzle-uri și puzzle-uri IT, iar generatorul de numere aleatorii este unul dintre astfel de puzzle-uri. De obicei, pe canalul meu de telegrame rezolv tot felul de puzzle-uri și diverse sarcini din interviuri. Problema generatorului de numere aleatoare a câștigat o mare popularitate și am vrut să o perpetuez în profunzimea uneia dintre sursele de informare autorizate - adică aici pe Habré.

Acest material va fi util tuturor acelor front-ender și dezvoltatori Node.js care sunt în fruntea tehnologiei și doresc să intre în proiectul/startup-ul blockchain, unde se pun întrebări despre securitate și criptografie, cel puțin la nivel de bază. chiar și de către dezvoltatorii front-end.

Generator de numere pseudoaleatoare și generator de numere aleatoare

Pentru a obține ceva aleatoriu, avem nevoie de o sursă de entropie, o sursă de un fel de haos din care vom folosi pentru a genera aleatorietatea.

Această sursă este folosită pentru a acumula entropia și apoi a obține din ea valoarea inițială (valoare inițială, sămânță), care este necesară generatorilor de numere aleatoare (RNG) pentru a genera numere aleatoare.

Generatorul de numere pseudo-aleatorie folosește o singură valoare de bază, de unde pseudo-aleatoria sa, în timp ce Generatorul de numere aleatoare generează întotdeauna un număr aleatoriu, începând cu o valoare aleatoare de înaltă calitate, care este luată din diverse surse de entropie.

Entropia - este o măsură a dezordinei. Entropia informației este o măsură a incertitudinii sau impredictibilității informațiilor.
Se pare că pentru a crea o secvență pseudo-aleatorie, avem nevoie de un algoritm care va genera o secvență bazată pe o anumită formulă. Dar o astfel de succesiune poate fi prezisă. Totuși, să ne imaginăm cum am putea scrie propriul nostru generator de numere aleatoare dacă nu am avea Math.random()

PRNG are un algoritm care poate fi reprodus.
RNG - obține numere complet din orice zgomot, abilitatea de a calcula care tinde spre zero. În același timp, RNG-ul are anumiți algoritmi de nivelare a distribuției.

Inventăm propriul algoritm PRNG

Generatorul de numere pseudoaleatoare (PRNG) este un algoritm care generează o secvență de numere ale căror elemente sunt aproape independente unele de altele și se supun unei distribuții date (de obicei uniformă).
Putem lua o succesiune de numere și putem lua din ele modulul numărului. Cel mai simplu exemplu care îmi vine în minte. Trebuie să ne gândim la ce secvență să luăm și modulul din ce. Dacă doar direct de la 0 la N și modulul 2, atunci obțineți un generator de 1 și 0:

Funcția* rand() ( const n = 100; const mod = 2; fie i = 0; în timp ce (adevărat) ( ​​yield i % mod; dacă (i++ > n) i = 0; ) ) fie i = 0; pentru (fie x din rand()) ( dacă (i++ > 100) break; console.log(x); )
Această funcție generează pentru noi secvența 01010101010101 ... și nici măcar nu poate fi numită pseudo-aleatorie. Pentru ca un generator să fie aleatoriu, trebuie să treacă testul pentru următorul bit. Dar noi nu avem o asemenea sarcină. Cu toate acestea, chiar și fără teste, putem prezice următoarea secvență, ceea ce înseamnă că un astfel de algoritm nu este potrivit în frunte, dar suntem în direcția corectă.

Dar dacă luăm o secvență binecunoscută, dar neliniară, de exemplu, numărul PI. Și ca valoare pentru modul, vom lua nu 2, ci altceva. Vă puteți gândi chiar la schimbarea valorii modulului. Secvența de cifre din Pi este considerată aleatorie. Generatorul poate funcționa folosind pi pornind de la un punct necunoscut. Un exemplu de astfel de algoritm, cu o secvență bazată pe PI și modificare de modulo:

Const vector = [...Math.PI.toFixed(48).replace(".","")]; funcția* rand() (pentru (fie i=3; i<1000; i++) { if (i >99) i = 2; pentru (fie n=0; n Dar în JS, numărul PI poate fi afișat doar până la 48 de caractere și nu mai mult. Prin urmare, este încă ușor să preziceți o astfel de secvență și fiecare rulare a unui astfel de generator va produce întotdeauna aceleași numere. Dar generatorul nostru a început deja să arate numere de la 0 la 9.

Avem un generator de numere de la 0 la 9, dar distribuția este foarte neuniformă și va genera aceeași secvență de fiecare dată.

Putem lua nu numărul Pi, ci timpul în reprezentare numerică și să considerăm acest număr ca o succesiune de cifre, iar pentru a preveni repetarea succesiunii de fiecare dată, o vom citi de la sfârșit. În total, algoritmul nostru pentru PRNG va arăta astfel:

Funcția* rand() (let newNumVector = () => [...(+new Date)+""].reverse(); let vector = newNumVector(); las i=2; while (true) ( ​​​​​dacă (i++ > 99) i = 2; fie n=-1; în timp ce (++n< vector.length) yield (vector[n] % i); vector = newNumVector(); } } // TEST: let i = 0; for (let x of rand()) { if (i++ >100) pauză; console.log(x) )
Acum arată ca un generator de numere pseudo-aleatoare. Și același Math.random() - este un PRNG, vom vorbi despre asta puțin mai târziu. Mai mult, de fiecare dată primul număr este diferit.

De fapt, pe aceste exemple simple, puteți înțelege cum funcționează generatoarele de numere aleatoare mai complexe.Și există chiar și algoritmi gata pregătiți. De exemplu, să analizăm unul dintre ele - acesta este PRNG congruent liniar (LCPRNG).

PRNG liniar congruent

Linear Congruential PRNG (LCPRNG) -  este o metodă comună pentru generarea numerelor pseudoaleatoare. Nu are putere criptografică. Această metodă constă în calcularea termenilor unei secvențe liniare recurente modulo un număr natural m dat printr-o formulă. Secvența rezultată depinde de alegerea numărului de pornire - i.e. sămânță. Pentru diferite valori ale semințelor, se obțin secvențe diferite de numere aleatorii. Un exemplu de implementare a unui astfel de algoritm în JavaScript:

Const a = 45; const c = 21; const m = 67; vas = 2; const rand = () => sămânță = (a * sămânță + c) % m; pentru(fie i=0; i<30; i++) console.log(rand())
Multe limbaje de programare folosesc LCPRNG (dar nu doar un astfel de algoritm (!).

După cum sa menționat mai sus, o astfel de secvență poate fi prezisă. Deci, de ce avem nevoie de PRNG? Dacă vorbim despre securitate, atunci PRNG este o problemă. Dacă vorbim despre alte sarcini, atunci aceste proprietăți  -  pot juca un plus. De exemplu, pentru diferite efecte speciale și animații grafice, poate fi necesar să apelați frecvent aleatoriu. Și aici distribuția valorilor și performanța sunt importante! Algoritmii de securitate nu se pot lăuda cu viteză.

O altă proprietate - reproductibilitate. Unele implementări vă permit să specificați o sămânță, ceea ce este foarte util dacă o secvență trebuie repetată. Reproducerea este necesară în teste, de exemplu. Și există multe alte lucruri care nu necesită un RNG securizat.

Cum funcționează Math.random().

Metoda Math.random() returnează un număr pseudo-aleatoriu în virgulă mobilă din intervalul = crypto.getRandomValues(new Uint8Array(1)); jurnalul consolei (valoarea r)
Dar, spre deosebire de PRNG Math.random(), această metodă necesită foarte mult resurse. Faptul este că acest generator folosește apeluri de sistem în sistemul de operare pentru a accesa sursele de entropie (adresă mac, CPU, temperatură etc...).

Pentru a genera numere aleatorii în intervalul de care aveți nevoie, cel mai bine este să utilizați Generatorul de numere aleatoare online. Prezența unui număr mare de opțiuni vă va permite să selectați numărul necesar de numere aleatorii, precum și să specificați valoarea finală și inițială.

Instrucțiuni pentru generatorul de numere online (randomizare):

În mod implicit, generatorul de numere aleatoare este introdus cu 1 număr. Dacă modificați setările aplicației, puteți genera simultan până la 250 de numere aleatorii. Mai întâi trebuie să setați intervalul. Valoarea maximă a unui număr este 9.999.999.999. Generatorul de numere aleatorii vă permite să ordonați numerele în ordine descrescătoare, crescătoare sau aleatorie.

Pentru a afișa rezultatul, puteți utiliza diferite separatoare: punct și virgulă, virgulă și spațiu. În plus, este posibilă repetarea. Opțiunea „Exclude repetări” vă va permite să scăpați de dublări. De asemenea, puteți trimite un link către calculele făcute prin messenger sau e-mail prin copierea „Link către rezultat”.

Avem o succesiune de numere, formată din elemente aproape independente care se supun unei distribuții date. De obicei distribuit uniform.

Puteți genera numere aleatorii în Excel în diferite moduri și moduri. Să aruncăm o privire la cele mai bune dintre ele.

Funcția numere aleatorii în Excel

  1. Funcția RAND returnează un număr real aleator distribuit uniform. Va fi mai mic de 1, mai mare sau egal cu 0.
  2. Funcția RANDBETWEEN returnează un număr întreg aleatoriu.

Să ne uităm la utilizarea lor cu exemple.

Selectarea numerelor aleatorii cu RAND

Această funcție nu necesită niciun argument (RAND()).

Pentru a genera un număr real aleatoriu între 1 și 5, de exemplu, utilizați următoarea formulă: =RAND()*(5-1)+1.

Numărul aleator returnat este distribuit uniform pe intervalul .

De fiecare dată când se calculează foaia de lucru sau se modifică valoarea din orice celulă din foaia de lucru, este returnat un nou număr aleatoriu. Dacă doriți să salvați populația generată, puteți înlocui formula cu valoarea acesteia.

  1. Facem clic pe o celulă cu un număr aleatoriu.
  2. Evidențiați formula în bara de formule.
  3. Apăsați F9. SI INTRA.

Să verificăm uniformitatea distribuției numerelor aleatoare din primul eșantion folosind histograma distribuției.


Gama de valori verticale este frecvența. Orizontală - „buzunare”.



Funcția RANDBETWEEN

Sintaxa funcției RANDBETWEEN este (limită inferioară; limită superioară). Primul argument trebuie să fie mai mic decât al doilea. În caz contrar, funcția va genera o eroare. Se presupune că limitele sunt numere întregi. Formula elimină partea fracționată.

Un exemplu de utilizare a funcției:

Numere aleatorii cu precizie de 0,1 și 0,01:

Cum să faci un generator de numere aleatorii în Excel

Să facem un generator de numere aleatorii cu generarea unei valori dintr-un anumit interval. Folosim o formulă ca: =INDEX(A1:A10;INTEGER(RAND()*10)+1).

Să facem un generator de numere aleatorii în intervalul de la 0 la 100 cu un pas de 10.

Din lista de valori text, trebuie să selectați 2 aleatorii. Folosind funcția RAND, comparăm valorile textului din intervalul A1:A7 cu numere aleatorii.

Să folosim funcția INDEX pentru a selecta două valori ale text aleatoriu din lista originală.

Pentru a selecta o valoare aleatorie din listă, aplicați următoarea formulă: =INDEX(A1:A7,RANDBETWEEN(1,COUNT(A1:A7))).

Generator de numere aleatorii cu distribuție normală

Funcțiile RAND și RANDBETWEEN produc numere aleatoare cu o singură distribuție. Orice valoare cu aceeași probabilitate poate intra în limita inferioară a intervalului solicitat și în cea superioară. Se dovedește o răspândire uriașă față de valoarea țintă.

Distribuția normală înseamnă că majoritatea numerelor generate sunt aproape de țintă. Să corectăm formula RANDBETWEEN și să creăm o matrice de date cu o distribuție normală.

Costul mărfurilor X este de 100 de ruble. Întregul lot produs este supus unei distribuții normale. Variabila aleatoare urmează, de asemenea, o distribuție normală de probabilitate.

În astfel de condiții, valoarea medie a intervalului este de 100 de ruble. Să generăm o matrice și să construim un grafic cu o distribuție normală cu o abatere standard de 1,5 ruble.

Folosim funcția: =NORMINV(RAND();100;1.5).

Excel a calculat ce valori sunt în intervalul de probabilități. Deoarece probabilitatea de a produce un produs cu un cost de 100 de ruble este maximă, formula arată valori aproape de 100 mai des decât restul.

Să trecem la complot. Mai întâi trebuie să creați un tabel cu categorii. Pentru a face acest lucru, împărțim matricea în perioade:

Pe baza datelor obținute, putem forma o diagramă cu o distribuție normală. Axa valorii este numărul de variabile din interval, axa categoriilor sunt perioadele.