Online random number generator. Excel random number generator sa mga function at data analysis Talaan ng mga random na numero mula sa 1

Naisip mo na ba kung paano gumagana ang Math.random()? Ano ang isang random na numero at paano ito nakuha? At isipin ang isang tanong sa isang panayam - isulat ang iyong random number generator sa ilang linya ng code. At kaya, ano ito, isang aksidente at posible bang mahulaan ito?

Ako ay labis na nabighani sa iba't ibang IT puzzle at puzzle, at ang random number generator ay isa sa mga ganoong palaisipan. Kadalasan sa aking telegram channel ay inaayos ko ang lahat ng uri ng palaisipan at iba't ibang gawain mula sa mga panayam. Ang problema tungkol sa random number generator ay nakakuha ng mahusay na katanyagan at nais kong ipagpatuloy ito sa kalaliman ng isa sa mga makapangyarihang mapagkukunan ng impormasyon - iyon ay, dito sa Habré.

Ang materyal na ito ay magiging kapaki-pakinabang sa lahat ng mga front-end na developer at Node.js na mga developer na nangunguna sa teknolohiya at gustong makapasok sa blockchain project / startup, kung saan kahit na ang mga front-end na developer ay tinatanong tungkol sa seguridad at cryptography, sa hindi bababa sa isang pangunahing antas.

Pseudo random number generator at random number generator

Upang makakuha ng isang bagay na random, kailangan namin ng isang mapagkukunan ng entropy, isang mapagkukunan ng ilang uri ng kaguluhan kung saan gagamitin namin upang bumuo ng randomness.

Ginagamit ang source na ito upang makaipon ng entropy, na sinusundan ng pagkuha mula dito ng paunang halaga (initial value, seed), na kinakailangan para sa random number generators (RNG) upang makabuo ng mga random na numero.

Gumagamit ang Pseudo-Random Number Generator ng iisang seed value, kaya ang pseudo-randomness nito, habang ang Random Number Generator ay palaging bumubuo ng random na numero, simula sa mataas na kalidad na random na value na kinuha mula sa iba't ibang source ng entropy.

Ang entropy -  ay isang sukatan ng kaguluhan. Ang entropy ng impormasyon ay isang sukatan ng kawalan ng katiyakan o hindi mahuhulaan ng impormasyon.
Lumalabas na para makalikha ng pseudo-random na sequence, kailangan namin ng algorithm na bubuo ng ilang sequence batay sa isang partikular na formula. Ngunit ang gayong pagkakasunud-sunod ay maaaring mahulaan. Gayunpaman, isipin natin kung paano natin maisusulat ang sarili nating random number generator kung wala tayong Math.random()

Ang PRNG ay may ilang algorithm na maaaring kopyahin.
Ang RNG -  ay ganap na nakakakuha ng mga numero mula sa anumang ingay, ang kakayahang kalkulahin kung alin ang nagiging zero. Kasabay nito, ang RNG ay may ilang mga algorithm para sa pag-level ng pamamahagi.

Pag-imbento ng sarili nating PRNG algorithm

Ang pseudo-random number generator (PRNG) ay isang algorithm na bumubuo ng isang sequence ng mga numero, ang mga elemento nito ay halos independyente sa isa't isa at sumusunod sa isang ibinigay na pamamahagi (karaniwan ay pare-pareho).
Maaari tayong kumuha ng pagkakasunod-sunod ng ilang numero at kunin ang modulus ng numero mula sa kanila. Ang pinakasimpleng halimbawa na naiisip. Kailangan nating isipin kung anong sequence ang kukunin at ang module mula sa kung ano. Kung direkta lang mula 0 hanggang N at module 2, pagkatapos ay makakakuha ka ng generator ng 1 at 0:

Function* rand() ( const n = 100; const mod = 2; let i = 0; while (true) ( ​​yield i % mod; if (i++ > n) i = 0; ) ) let i = 0; para sa (hayaan ang x ng rand()) ( kung (i++ > 100) break; console.log(x); )
Binubuo ng function na ito para sa amin ang sequence 01010101010101 ... at hindi man lang ito matatawag na pseudo-random. Para maging random ang isang generator, dapat itong pumasa sa pagsubok para sa susunod na bit. Ngunit wala kaming ganoong gawain. Gayunpaman, kahit na walang anumang mga pagsubok, maaari nating mahulaan ang susunod na pagkakasunud-sunod, na nangangahulugan na ang gayong algorithm ay hindi angkop sa noo, ngunit nasa tamang direksyon tayo.

Ngunit paano kung kukuha tayo ng ilang kilalang, ngunit hindi linear na pagkakasunud-sunod, halimbawa, ang numerong PI. At bilang isang halaga para sa module, kukuha kami ng hindi 2, ngunit iba pa. Maaari mo ring isipin ang tungkol sa pagbabago ng halaga ng modyul. Ang pagkakasunud-sunod ng mga digit sa Pi ay itinuturing na random. Ang generator ay maaaring gumana gamit ang pi simula sa ilang hindi kilalang punto. Isang halimbawa ng naturang algorithm, na may PI-based na sequence at pagbabago sa modulo:

Const vector = [...Math.PI.toFixed(48).replace(".","")]; function* rand() ( para sa (hayaan i=3; i<1000; i++) { if (i >99) i = 2; para sa (hayaan n=0; n Ngunit sa JS, ang numerong PI ay maaari lamang ipakita ng hanggang 48 na mga character at wala na. Samakatuwid, madali pa ring hulaan ang gayong pagkakasunud-sunod, at ang bawat pagtakbo ng naturang generator ay palaging magbubunga ng parehong mga numero. Ngunit ang aming generator ay nagsimula nang magpakita ng mga numero mula 0 hanggang 9.

Nakakuha kami ng isang generator ng numero mula 0 hanggang 9, ngunit ang pamamahagi ay hindi pantay at bubuo ito ng parehong pagkakasunud-sunod sa bawat oras.

Hindi natin maaaring kunin ang numerong Pi, ngunit ang oras sa numerical na representasyon at isaalang-alang ang numerong ito bilang isang pagkakasunud-sunod ng mga digit, at upang maiwasan ang pag-uulit ng sequence sa bawat oras, babasahin natin ito mula sa dulo. Sa kabuuan, ang aming algorithm para sa aming PRNG ay magiging ganito:

Function* rand() ( let newNumVector = () => [...(+bagong Petsa)+""].reverse(); let vector = newNumVector(); let i=2; while (true) ( ​​​​kung ( i++ > 99) i = 2; hayaan n=-1; habang (++n< vector.length) yield (vector[n] % i); vector = newNumVector(); } } // TEST: let i = 0; for (let x of rand()) { if (i++ >100) break; console.log(x) )
Ngayon ay mukhang isang pseudo-random number generator. At ang parehong Math.random() - ay isang PRNG, pag-uusapan natin ito sa ibang pagkakataon. Bukod dito, sa bawat oras na ang unang numero ay iba.

Sa totoo lang, sa mga simpleng halimbawang ito, mauunawaan mo kung paano gumagana ang mas kumplikadong mga generator ng random na numero. At mayroon ding mga yari na algorithm. Halimbawa, suriin natin ang isa sa mga ito - ito ay ang Linear Congruent PRNG (LCPRNG).

Linear congruent PRNG

Ang Linear Congruential PRNG (LCPRNG) -  ay isang karaniwang pamamaraan para sa pagbuo ng mga pseudo-random na numero. Wala itong cryptographic strength. Ang pamamaraang ito ay binubuo sa pagkalkula ng mga tuntunin ng isang linear na paulit-ulit na sequence modulo ilang natural na bilang m na ibinigay ng isang formula. Ang resultang sequence ay depende sa pagpili ng panimulang numero - i.e. buto. Para sa iba't ibang mga halaga ng binhi, iba't ibang pagkakasunud-sunod ng mga random na numero ang nakuha. Isang halimbawa ng pagpapatupad ng naturang algorithm sa JavaScript:

Const a = 45; const c = 21; const m = 67; varseed = 2; const rand = () => seed = (a * seed + c) % m; para sa(hayaan i=0; i<30; i++) console.log(rand())
Maraming mga programming language ang gumagamit ng LCPRNG (ngunit hindi lamang tulad ng algorithm (!).

Tulad ng nabanggit sa itaas, ang gayong pagkakasunud-sunod ay maaaring mahulaan. Kaya bakit kailangan natin ng PRNG? Kung pag-uusapan natin ang tungkol sa seguridad, ang PRNG ay isang problema. Kung pag-uusapan natin ang tungkol sa iba pang mga gawain, ang mga katangiang ito  -  ay maaaring maglaro ng isang plus. Halimbawa, para sa iba't ibang mga espesyal na epekto at graphics animation, maaaring kailanganin mong tumawag nang random nang madalas. At narito ang pamamahagi ng mga halaga at pagganap ay mahalaga! Ang mga algorithm ng seguridad ay hindi maaaring ipagmalaki ang bilis.

Isa pang property - reproducibility. Ang ilang mga pagpapatupad ay nagbibigay-daan sa iyo na tumukoy ng isang binhi, na lubhang kapaki-pakinabang kung ang isang pagkakasunud-sunod ay uulitin. Ang pagpaparami ay kinakailangan sa mga pagsubok, halimbawa. At marami pang ibang bagay na hindi nangangailangan ng secure na RNG.

Paano gumagana ang Math.random().

Ang Math.random() method ay nagbabalik ng pseudo-random na floating point number mula sa range = crypto.getRandomValues(new Uint8Array(1)); console log(rvalue)
Ngunit, hindi tulad ng PRNG Math.random(), ang pamamaraang ito ay napaka-resource intensive. Ang katotohanan ay ang generator na ito ay gumagamit ng mga tawag sa system sa OS upang ma-access ang mga mapagkukunan ng entropy (poppy address, cpu, temperatura, atbp ...).

Upang makabuo ng mga random na numero sa hanay na kailangan mo, pinakamahusay na gamitin ang Online Random Number Generator. Ang pagkakaroon ng isang malaking bilang ng mga pagpipilian ay magbibigay-daan sa iyo upang piliin ang kinakailangang bilang ng mga random na numero, pati na rin tukuyin ang pangwakas at paunang halaga.

Mga tagubilin sa online na generator ng numero (randomizer):

Bilang default, ang generator ng random na numero ay ipinasok na may 1 numero. Kung babaguhin mo ang mga setting ng application, maaari kang sabay na bumuo ng hanggang 250 random na numero. Una kailangan mong itakda ang hanay. Ang maximum na halaga ng isang numero ay 9,999,999,999. Binibigyang-daan ka ng generator ng random na numero na pagbukud-bukurin ang mga numero sa pataas, pababa, o random na pagkakasunud-sunod.

Para ipakita ang resulta, maaari kang gumamit ng iba't ibang separator: semicolon, comma, at space. Bilang karagdagan, posible ang pag-uulit. Ang opsyong "Ibukod ang mga pag-uulit" ay magbibigay-daan sa iyong alisin ang mga duplikasyon. Maaari ka ring magpadala ng link sa mga kalkulasyon na ginawa ng messenger o e-mail sa pamamagitan ng pagkopya sa "Link sa resulta".

Mayroon kaming isang pagkakasunud-sunod ng mga numero, na binubuo ng halos independiyenteng mga elemento na sumusunod sa isang ibinigay na pamamahagi. Karaniwang pantay na ipinamamahagi.

Maaari kang bumuo ng mga random na numero sa Excel sa iba't ibang paraan at paraan. Tingnan natin ang pinakamahusay sa kanila.

Random Number Function sa Excel

  1. Ang RAND function ay nagbabalik ng random, pare-parehong ibinahagi na tunay na numero. Ito ay magiging mas mababa sa 1, mas malaki sa o katumbas ng 0.
  2. Ang RANDBETWEEN function ay nagbabalik ng random na integer.

Tingnan natin ang kanilang paggamit sa mga halimbawa.

Pagpili ng mga random na numero na may RAND

Ang function na ito ay hindi nangangailangan ng anumang mga argumento (RAND()).

Upang makabuo ng random na totoong numero sa pagitan ng 1 at 5, halimbawa, gamitin ang sumusunod na formula: =RAND()*(5-1)+1.

Ang ibinalik na random na numero ay pantay na ibinahagi sa pagitan.

Sa bawat oras na kinakalkula ang worksheet, o ang halaga sa anumang cell sa worksheet ay nagbabago, isang bagong random na numero ang ibabalik. Kung gusto mong i-save ang nabuong populasyon, maaari mong palitan ang formula ng halaga nito.

  1. Nag-click kami sa isang cell na may random na numero.
  2. I-highlight ang formula sa formula bar.
  3. Pindutin ang F9. AT PUMASOK.

Suriin natin ang pagkakapareho ng pamamahagi ng mga random na numero mula sa unang sample gamit ang histogram ng pamamahagi.


Ang saklaw ng mga vertical na halaga ay dalas. Pahalang - "mga bulsa".



RANDBETWEEN function

Ang syntax ng RANDBETWEEN function ay (lower bound; upper bound). Ang unang argumento ay dapat na mas mababa kaysa sa pangalawa. Kung hindi, ang function ay magtapon ng isang error. Ang mga hangganan ay ipinapalagay na mga integer. Itinatapon ng formula ang fractional na bahagi.

Isang halimbawa ng paggamit ng function:

Mga random na numero na may 0.1 at 0.01 na katumpakan:

Paano gumawa ng random number generator sa Excel

Gumawa tayo ng isang random na generator ng numero na may pagbuo ng isang halaga mula sa isang tiyak na hanay. Gumagamit kami ng formula tulad ng: =INDEX(A1:A10;INTEGER(RAND()*10)+1).

Gumawa tayo ng random number generator sa hanay mula 0 hanggang 100 na may hakbang na 10.

Mula sa listahan ng mga halaga ng teksto, kailangan mong pumili ng 2 random na mga halaga. Gamit ang RAND function, inihahambing namin ang mga halaga ng teksto sa hanay na A1:A7 na may mga random na numero.

Gamitin natin ang function na INDEX para pumili ng dalawang random na value ng text mula sa orihinal na listahan.

Upang pumili ng isang random na halaga mula sa listahan, ilapat ang sumusunod na formula: =INDEX(A1:A7,RANDBETWEEN(1,COUNT(A1:A7))).

Normal Distribution Random Number Generator

Ang mga function na RAND at RANDBETWEEN ay gumagawa ng mga random na numero na may iisang pamamahagi. Ang anumang halaga na may parehong posibilidad ay maaaring mahulog sa mas mababang limitasyon ng hiniling na hanay at sa itaas. Lumalabas na isang malaking spread mula sa target na halaga.

Ang normal na pamamahagi ay nangangahulugan na ang karamihan sa mga nabuong numero ay malapit sa target. Iwasto natin ang RANDBETWEEN formula at gumawa ng array ng data na may normal na distribution.

Ang halaga ng mga kalakal X ay 100 rubles. Ang buong batch na ginawa ay napapailalim sa isang normal na pamamahagi. Ang random variable ay sumusunod din sa isang normal na probability distribution.

Sa ilalim ng gayong mga kondisyon, ang average na halaga ng hanay ay 100 rubles. Bumuo tayo ng array at bumuo ng graph na may normal na distribution na may standard deviation na 1.5 rubles.

Ginagamit namin ang function na: =NORMINV(RAND();100;1.5).

Kinakalkula ng Excel kung aling mga halaga ang nasa hanay ng mga probabilidad. Dahil ang posibilidad ng paggawa ng isang produkto na may halagang 100 rubles ay pinakamataas, ang formula ay nagpapakita ng mga halaga na malapit sa 100 nang mas madalas kaysa sa iba.

Mag-move on na tayo sa plotting. Una kailangan mong lumikha ng isang talahanayan na may mga kategorya. Upang gawin ito, hinati namin ang array sa mga tuldok:

Batay sa nakuhang datos, maaari tayong bumuo ng diagram na may normal na distribusyon. Ang axis ng halaga ay ang bilang ng mga variable sa pagitan, ang axis ng kategorya ay ang mga tuldok.

Ang mga numero ay nakapaligid sa atin mula sa kapanganakan at may mahalagang papel sa buhay. Para sa maraming tao, ang gawain mismo ay konektado sa mga numero, ang isang tao ay umaasa sa swerte, pinupunan ang mga tiket sa lottery ng mga numero, at may nagbibigay sa kanila ng isang ganap na mystical na kahulugan. Sa isang paraan o iba pa, kung minsan ay hindi natin magagawa nang hindi gumagamit ng isang programa tulad ng random na numero generator.

Halimbawa, kailangan mong ayusin ang isang premyo na draw sa mga subscriber ng iyong grupo. Tutulungan ka ng aming online na random number generator na pumili ng mga nanalo nang mabilis at tapat. Kailangan mo lang, halimbawa, upang itakda ang nais na bilang ng mga random na numero (sa bilang ng mga nanalo) at ang maximum na hanay (sa bilang ng mga kalahok, kung sila ay itinalagang mga numero). Ang pandaraya sa kasong ito ay ganap na hindi kasama.

Ang program na ito ay maaari ding magsilbi bilang isang random number generator para sa lotto. Halimbawa, bumili ka ng tiket at gusto mong ganap na umasa sa pagkakataon at swerte sa pagpili ng mga numero. Pagkatapos ang aming number randomizer ay tutulong na punan ang iyong tiket sa lottery.

Paano bumuo ng isang random na numero: mga tagubilin

random na programa ng numero gumagana nang napakasimple. Hindi mo na kailangang i-download ito sa iyong computer - lahat ay ginagawa sa window ng browser kung saan nakabukas ang pahinang ito. Ang mga random na numero ay nabuo ayon sa tinukoy na bilang ng mga numero at ang kanilang saklaw - mula 0 hanggang 999999999.

Upang makabuo ng isang numero online, kailangan mo:

  1. Piliin ang hanay kung saan mo gustong makuha ang resulta. Marahil ay gusto mong putulin ang mga numero hanggang 10 o, sabihin nating, 10000;
  2. Ibukod ang mga pag-uulit - sa pamamagitan ng pagpili sa item na ito, pipilitin mo ang **number randomizer** na mag-alok sa iyo ng mga natatanging kumbinasyon sa loob ng isang partikular na hanay;
  3. Piliin ang bilang ng mga numero - mula 1 hanggang 99999;
  4. I-click ang button na Bumuo ng Mga Numero.

Gaano man karaming numero ang gusto mong makuha bilang resulta, ang generator ng prime number ay magbibigay ng buong resulta nang sabay-sabay at makikita mo ito sa pahinang ito sa pamamagitan ng pag-scroll sa field na may mga numero gamit ang mouse o touchpad.

Ngayon ay maaari mong gamitin ang mga handa na numero sa paraang kailangan mo ito. Mula sa field ng numero, maaari mong kopyahin ang resulta para sa pag-post sa isang grupo o pag-mail. At upang walang mag-alinlangan sa resulta, kumuha ng isang screenshot ng pahinang ito, kung saan ang mga parameter ng randomizer ng numero at ang mga resulta ng programa ay malinaw na makikita. Imposibleng baguhin ang mga numero sa field, kaya ang posibilidad ng pagmamanipula ay hindi kasama. Umaasa kaming nakatulong sa iyo ang aming website at random number generator.

Mangyaring tulungan ang serbisyo sa isang pag-click: Sabihin sa iyong mga kaibigan ang tungkol sa generator!

Number generator online sa 1 click

Ang generator ng random na numero, na ipinakita sa aming website, ay napaka-maginhawa. Halimbawa, maaari itong gamitin sa mga drawing at lottery para matukoy ang mananalo. Ang mga nanalo ay tinutukoy sa ganitong paraan: ang programa ay nagbibigay ng isa o higit pang mga numero sa anumang saklaw na iyong tinukoy. Ang pagmamanipula ng mga resulta ay maaaring agad na maalis. At salamat dito, ang nagwagi ay tinutukoy sa isang patas na pagpipilian.

Minsan kailangan mong makakuha ng isang tiyak na bilang ng mga random na numero nang sabay-sabay. Halimbawa, gusto mong punan ang isang "4 sa 35" na tiket sa lottery, nagtitiwala sa pagkakataon. Maaari mong suriin: kung maghagis ka ng barya ng 32 beses, ano ang posibilidad na magkasunod na mahulog ang 10 reverse (mga ulo / buntot ay maaaring italaga ng mga numero 0 at 1)?

Random na numero online na pagtuturo ng video - randomizer

Ang aming number generator ay napakadaling gamitin. Hindi ito nangangailangan ng pag-download ng isang programa sa isang computer - maaari itong magamit online. Upang makuha ang numero na kailangan mo, kailangan mong itakda ang hanay ng mga random na numero, ang numero at, kung ninanais, ang number separator at ibukod ang mga pag-uulit.

Upang makabuo ng mga random na numero sa isang partikular na hanay ng dalas:

  • Pumili ng hanay;
  • Tukuyin ang bilang ng mga random na numero;
  • Ang function na "Number separator" ay nagsisilbi para sa kagandahan at kaginhawahan ng kanilang pagpapakita;
  • Kung kinakailangan, paganahin / huwag paganahin ang mga pag-uulit na may checkmark;
  • I-click ang button na "Bumuo".

Bilang resulta, makakatanggap ka ng mga random na numero sa isang ibinigay na hanay. Ang resulta ng number generator ay maaaring kopyahin o ipadala sa e-mail. Pinakamainam na kumuha ng screenshot o video ng proseso ng henerasyong ito. Ang aming randomizer ay malulutas ang alinman sa iyong mga gawain!