Številke nas obdajajo od rojstva in igrajo pomembno vlogo v življenju. Za mnoge ljudi je samo delo povezano s številkami, nekdo se zanaša na srečo, polni srečke s številkami, nekdo pa jim daje popolnoma mističen pomen. Tako ali drugače včasih ne moremo brez uporabe programa, kot je npr generator naključnih števil.

Na primer, med naročniki vaše skupine morate organizirati nagradno igro. Naš spletni generator naključnih števil vam bo pomagal hitro in pošteno izbrati zmagovalce. Nastaviti morate samo želeno število naključnih števil (glede na število zmagovalcev) in največji obseg (glede na število udeležencev, če so jim dodeljene številke). Goljufije so v tem primeru popolnoma izključene.

Ta program lahko služi tudi kot generator naključnih števil za loto. Na primer, kupili ste listek in se želite pri izbiri številk povsem zanesti na naključje in srečo. Potem vam bo naš randomizator številk pomagal izpolniti srečka.

Kako ustvariti naključno število: navodila

program za naključna števila deluje zelo preprosto. Sploh vam ga ni treba prenesti v računalnik - vse se naredi v oknu brskalnika, kjer je ta stran odprta. Naključna števila se generirajo glede na določeno število števil in njihov razpon - od 0 do 999999999.

Če želite ustvariti številko na spletu, potrebujete:

  1. Izberite obseg, v katerem želite dobiti rezultat. Morda želite odrezati števila do 10 ali, recimo, 10000;
  2. Izključi ponavljanja - z izbiro tega elementa boste prisilili **naključni mehanizem števil**, da vam ponudi samo edinstvene kombinacije znotraj določenega obsega;
  3. Izberite število številk - od 1 do 99999;
  4. Kliknite gumb Ustvari številke.

Ne glede na to, koliko števil želite dobiti kot rezultat, bo generator praštevil dal celoten rezultat naenkrat in to si lahko ogledate na tej strani tako, da se pomikate po polju s številkami z miško ali sledilno ploščico.

Zdaj lahko že pripravljene številke uporabite tako, kot jih potrebujete. Iz številskega polja lahko kopirate rezultat za objavo v skupini ali pošiljanje po pošti. In da nihče ne dvomi o rezultatu, naredite posnetek zaslona te strani, na katerem bodo jasno vidni parametri naključnega številčenja in rezultati programa. Spreminjanje številk v polju je nemogoče, zato je možnost manipulacije izključena. Upamo, da sta vam naša spletna stran in generator naključnih števil pomagala.

Pomagajte storitvi z enim klikom: Povejte svojim prijateljem o generatorju!

Generator številk na spletu v 1 kliku

Generator naključnih števil, ki je predstavljen na naši spletni strani, je zelo priročen. Na primer, lahko se uporablja pri žrebanju in loterijah za določitev zmagovalca. Zmagovalci so določeni na ta način: program izda eno ali več številk v poljubnem obsegu, ki ga določite. Prirejanje rezultatov je mogoče takoj odpraviti. In zahvaljujoč temu je zmagovalec določen v pošteni izbiri.

Včasih morate dobiti določeno število naključnih števil hkrati. Na primer, želite izpolniti srečko "4 od 35" in zaupati v naključje. Lahko preverite: če kovanec vržete 32-krat, kakšna je verjetnost, da bo zaporedoma izpadlo 10 preobratov (glave/repi so lahko dodeljene s številkama 0 in 1)?

Spletna video navodila za naključno število - randomizer

Naš generator številk je zelo enostaven za uporabo. Ne zahteva prenosa programa v računalnik – uporablja se lahko na spletu. Če želite dobiti številko, ki jo potrebujete, morate nastaviti obseg naključnih števil, število in po želji ločilo števil ter izključiti ponavljanja.

Če želite ustvariti naključna števila v določenem frekvenčnem območju:

  • Izberite obseg;
  • Določite število naključnih števil;
  • Funkcija "Ločilo številk" služi za lepoto in udobje njihovega prikaza;
  • Po potrebi omogočite / onemogočite ponovitve s kljukico;
  • Kliknite gumb "Ustvari".

Posledično boste prejeli naključna števila v danem obsegu. Rezultat generatorja številk lahko kopirate ali pošljete na e-pošto. Najbolje bi bilo narediti posnetek zaslona ali video tega procesa generiranja. Naš randomizator bo rešil vsako vašo nalogo!

Ste se kdaj vprašali, kako deluje Math.random()? Kaj je naključno število in kako se ga pridobi? In predstavljajte si vprašanje na razgovoru - napišite svoj generator naključnih števil v nekaj vrsticah kode. In kaj je to, nesreča in ali jo je mogoče predvideti?

Zelo me navdušujejo razne IT uganke in uganke in generator naključnih števil je ena izmed takih ugank. Ponavadi v svojem telegram kanalu urejam najrazličnejše uganke in razne naloge iz intervjujev. Težava o generatorju naključnih števil je postala zelo priljubljena in želel sem jo ohraniti v globinah enega od avtoritativnih virov informacij - to je tukaj na Habréju.

To gradivo bo uporabno za vse tiste front-ende in Node.js razvijalce, ki so v ospredju tehnologije in se želijo vključiti v projekt/startup blockchain, kjer se postavljajo vprašanja o varnosti in kriptografiji, vsaj na osnovni ravni. tudi čelni razvijalci.

Generator psevdo naključnih števil in generator naključnih števil

Da bi dobili nekaj naključnega, potrebujemo vir entropije, vir nekakšnega kaosa, iz katerega bomo generirali naključje.

Ta vir se uporablja za kopičenje entropije in nato iz nje pridobivanje začetne vrednosti (začetna vrednost, seme), ki je potrebna za generatorje naključnih števil (RNG) za ustvarjanje naključnih števil.

Generator psevdonaključnih števil uporablja eno samo začetno vrednost, zato je njegova psevdonaključnost, medtem ko Generator naključnih števil vedno ustvari naključno število, začenši z visoko kakovostno naključno vrednostjo, ki je vzeta iz različnih virov entropije.

Entropija - je merilo nereda. Informacijska entropija je merilo negotovosti ali nepredvidljivosti informacij.
Izkazalo se je, da za ustvarjanje psevdo-naključnega zaporedja potrebujemo algoritem, ki bo generiral neko zaporedje na podlagi določene formule. Toda takšno zaporedje je mogoče predvideti. Predstavljajmo si, kako bi lahko napisali lasten generator naključnih števil, če ne bi imeli Math.random()

PRNG ima nekaj algoritmov, ki jih je mogoče reproducirati.
RNG - je pridobivanje številk v celoti iz kakršnega koli hrupa, zmožnost izračuna, ki teži k ničli. Hkrati ima RNG določene algoritme za izravnavo porazdelitve.

Izumimo lasten algoritem PRNG

Generator psevdonaključnih števil (PRNG) je algoritem, ki generira zaporedje števil, katerih elementi so skoraj neodvisni drug od drugega in upoštevajo dano porazdelitev (običajno enakomerno).
Vzamemo lahko zaporedje nekaterih števil in iz njih vzamemo modul števila. Najenostavnejši primer, ki mi pride na misel. Razmisliti moramo, kakšno zaporedje vzeti in iz česa modul. Če samo neposredno od 0 do N in modula 2, potem dobite generator 1 in 0:

Funkcija* rand() ( const n = 100; const mod = 2; let i = 0; medtem ko (true) ( ​​​​donos i % mod; if (i++ > n) i = 0; ) ) let i = 0; for (naj x od rand()) ( if (i++ > 100) break; console.log(x); )
Ta funkcija za nas generira zaporedje 01010101010101 ... in ga sploh ne moremo imenovati psevdonaključno. Da bi bil generator naključen, mora opraviti test za naslednji bit. Mi pa nimamo takšne naloge. Kljub temu lahko tudi brez kakršnih koli testov napovemo naslednje zaporedje, kar pomeni, da takšen algoritem v čelo ni primeren, a smo na pravi poti.

A kaj, če vzamemo neko znano, a nelinearno zaporedje, na primer število PI. In kot vrednost za modul ne bomo vzeli 2, ampak nekaj drugega. Lahko celo pomislite na spreminjanje vrednosti modula. Zaporedje števk v pi velja za naključno. Generator lahko deluje z uporabo pi, začenši z neznane točke. Primer takega algoritma z zaporedjem, ki temelji na PI, in spremembo modula:

Const vector = [...Math.PI.toFixed(48).replace(".","")]; funkcija* rand() (za (naj i=3; i<1000; i++) { if (i >99) i = 2; za (naj bo n=0; n Toda v JS je številka PI lahko prikazana le do 48 znakov in nič več. Zato je še vedno enostavno predvideti takšno zaporedje in vsak zagon takšnega generatorja bo vedno proizvedel enaka števila. Toda naš generator je že začel prikazovati številke od 0 do 9.

Dobili smo generator števil od 0 do 9, vendar je porazdelitev zelo neenakomerna in bo vsakič ustvaril isto zaporedje.

Ne vzamemo lahko števila Pi, ampak čas v numerični predstavitvi in ​​to število obravnavamo kot zaporedje števk, in da se zaporedje ne bi vsakič ponovilo, ga bomo prebrali od konca. Skupaj bo naš algoritem za naš PRNG videti takole:

Funkcija* rand() ( let newNumVector = () => [...(+nov datum)+""].reverse(); let vector = newNumVector(); let i=2; medtem ko (true) ( ​​​​if ( i++ > 99) i = 2; naj bo n=-1; medtem ko (++n< vector.length) yield (vector[n] % i); vector = newNumVector(); } } // TEST: let i = 0; for (let x of rand()) { if (i++ >100) odmor; console.log(x) )
Zdaj je videti kot generator psevdonaključnih števil. In isti Math.random() - je PRNG, o tem bomo govorili malo kasneje. Še več, vsakokrat je prva številka drugačna.

Pravzaprav lahko na teh preprostih primerih razumete, kako delujejo bolj zapleteni generatorji naključnih števil. In obstajajo celo že pripravljeni algoritmi. Na primer, analizirajmo enega od njih - to je linearni kongruentni PRNG (LCPRNG).

Linearni skladni PRNG

Linearni kongruenčni PRNG (LCPRNG) -  je običajna metoda za generiranje psevdonaključnih števil. Nima kriptografske moči. Ta metoda je sestavljena iz izračunavanja členov linearnega ponavljajočega se zaporedja po modulu nekega naravnega števila m, podanega s formulo. Nastalo zaporedje je odvisno od izbire startne številke - tj. seme. Za različne semenske vrednosti se pridobijo različna zaporedja naključnih števil. Primer implementacije takšnega algoritma v JavaScript:

Const a = 45; const c = 21; konst m = 67; varno seme = 2; const rand = () => seme = (a * seme + c) % m; za (naj i=0; i<30; i++) console.log(rand())
Mnogi programski jeziki uporabljajo LCPRNG (vendar ne le tak algoritem (!).

Kot je navedeno zgoraj, je takšno zaporedje mogoče predvideti. Zakaj torej potrebujemo PRNG? Če govorimo o varnosti, potem je PRNG problem. Če govorimo o drugih nalogah, potem lahko te lastnosti  -  igrajo plus. Na primer, za različne posebne učinke in grafične animacije boste morda morali pogosto klicati naključno. In tukaj je pomembna porazdelitev vrednosti in uspešnost! Varnostni algoritmi se ne morejo pohvaliti s hitrostjo.

Druga lastnost - ponovljivost. Nekatere izvedbe vam omogočajo, da določite seme, kar je zelo uporabno, če se mora zaporedje ponoviti. Reprodukcija je na primer potrebna pri testih. Obstaja še veliko drugih stvari, ki ne zahtevajo varnega RNG.

Kako deluje Math.random().

Metoda Math.random() vrne psevdonaključno število s plavajočo vejico iz obsega = crypto.getRandomValues(new Uint8Array(1)); konzolni dnevnik (rvalue)
Toda za razliko od PRNG Math.random() je ta metoda zelo intenzivna. Dejstvo je, da ta generator uporablja sistemske klice v OS za dostop do virov entropije (naslov maka, procesor, temperatura, itd ...).

Če želite ustvariti naključna števila v obsegu, ki ga potrebujete, je najbolje uporabiti spletni generator naključnih števil. Prisotnost velikega števila možnosti vam bo omogočila, da izberete potrebno število naključnih števil ter določite končno in začetno vrednost.

Navodila za spletni generator števil (randomizator):

Privzeto je generator naključnih števil vnesen z 1 številko. Če spremenite nastavitve aplikacije, lahko hkrati ustvarite do 250 naključnih števil. Najprej morate nastaviti obseg. Največja vrednost števila je 9 999 999 999. Generator naključnih števil vam omogoča razvrščanje števil v padajočem, naraščajočem ali naključnem vrstnem redu.

Za prikaz rezultata lahko uporabite različna ločila: podpičje, vejico in presledek. Poleg tega je možna ponovitev. Možnost "Izključi ponovitve" vam bo omogočila, da se znebite podvajanja. Prav tako lahko pošljete povezavo do izračunov, opravljenih prek messengerja ali e-pošte, tako da kopirate "Povezavo do rezultata".

Imamo zaporedje števil, sestavljeno iz skoraj neodvisnih elementov, ki se podrejajo dani porazdelitvi. Običajno enakomerno porazdeljena.

Naključna števila v Excelu lahko ustvarite na različne načine in načine. Oglejmo si najboljše med njimi.

Funkcija naključnega števila v Excelu

  1. Funkcija RAND vrne naključno enakomerno porazdeljeno realno število. Manjši bo od 1, večji ali enak 0.
  2. Funkcija RANDBETWEEN vrne naključno celo število.

Oglejmo si njihovo uporabo s primeri.

Izbiranje naključnih števil z RAND

Ta funkcija ne zahteva nobenih argumentov (RAND()).

Če želite na primer ustvariti naključno realno število med 1 in 5, uporabite naslednjo formulo: =RAND()*(5-1)+1.

Vrnjeno naključno število je enakomerno porazdeljeno po intervalu.

Vsakič, ko je delovni list izračunan ali se vrednost v kateri koli celici na delovnem listu spremeni, se vrne novo naključno število. Če želite shraniti ustvarjeno populacijo, lahko formulo zamenjate z njeno vrednostjo.

  1. Kliknemo na celico z naključno številko.
  2. Označite formulo v vrstici s formulami.
  3. Pritisnite F9. IN VSTOPI.

Enakomernost porazdelitve naključnih števil iz prvega vzorca preverimo s porazdelitvenim histogramom.


Razpon navpičnih vrednosti je frekvenca. Horizontalno - "žepi".



Funkcija RANDBETWEEN

Sintaksa funkcije RANDBETWEEN je (spodnja meja; zgornja meja). Prvi argument mora biti manjši od drugega. V nasprotnem primeru bo funkcija vrgla napako. Predpostavlja se, da so meje cela števila. Formula zavrže ulomek.

Primer uporabe funkcije:

Naključna števila z natančnostjo 0,1 in 0,01:

Kako narediti generator naključnih števil v Excelu

Naredimo generator naključnih števil z generiranjem vrednosti iz določenega obsega. Uporabljamo formulo, kot je: =INDEX(A1:A10;INTEGER(RAND()*10)+1).

Naredimo generator naključnih števil v območju od 0 do 100 s korakom 10.

Iz seznama besedilnih vrednosti morate izbrati 2 naključni. S funkcijo RAND primerjamo besedilne vrednosti v območju A1:A7 z naključnimi številkami.

Uporabimo funkcijo INDEX, da iz prvotnega seznama izberemo dve naključni besedilni vrednosti.

Če želite izbrati eno naključno vrednost s seznama, uporabite to formulo: =INDEX(A1:A7,RANDBETWEEN(1,COUNT(A1:A7))).

Generator naključnih števil z normalno porazdelitvijo

Funkciji RAND in RANDBETWEEN ustvarita naključna števila z eno samo porazdelitvijo. Vsaka vrednost z enako verjetnostjo lahko pade v spodnjo mejo zahtevanega obsega in v zgornjo. Izkaže se velik razmik od ciljne vrednosti.

Normalna porazdelitev pomeni, da je večina ustvarjenih številk blizu cilja. Popravimo formulo RANDBETWEEN in ustvarimo podatkovno matriko z normalno porazdelitvijo.

Cena blaga X je 100 rubljev. Za celotno proizvedeno serijo velja normalna distribucija. Tudi naključna spremenljivka sledi normalni porazdelitvi verjetnosti.

V takih pogojih je povprečna vrednost razpona 100 rubljev. Ustvarimo matriko in zgradimo graf z normalno porazdelitvijo s standardnim odklonom 1,5 rublja.

Uporabimo funkcijo: =NORMINV(RAND();100;1,5).

Excel je izračunal, katere vrednosti so v območju verjetnosti. Ker je verjetnost izdelave izdelka s ceno 100 rubljev največja, formula prikazuje vrednosti blizu 100 pogosteje kot ostale.

Pojdimo k risanju. Najprej morate ustvariti tabelo s kategorijami. Da bi to naredili, matriko razdelimo na obdobja:

Na podlagi dobljenih podatkov lahko oblikujemo diagram z normalno porazdelitvijo. Os vrednosti je število spremenljivk v intervalu, os kategorije so obdobja.