Juhuslike arvude generaator kuni 10. Exceli juhuslike numbrite generaator funktsioonide ja andmete analüüsis

Meil on arvude jada, mis koosneb praktiliselt sõltumatutest elementidest, mis järgivad antud jaotust. Reeglina ühtlane jaotus.

Juhuslikke numbreid saate Excelis genereerida erineval viisil ja viisidel. Vaatleme neist ainult parimaid.

Juhuslike arvude funktsioon Excelis

  1. Funktsioon RAND tagastab juhusliku ühtlaselt jaotatud reaalarvu. See on väiksem kui 1, suurem kui 0 või sellega võrdne.
  2. Funktsioon RANDBETWEEN tagastab juhusliku täisarvu.

Vaatame nende kasutamist näidetega.

Juhuslike arvude valimine RAND-i abil

See funktsioon ei vaja argumente (RAND()).

Näiteks juhusliku reaalarvu vahemikus 1 kuni 5 genereerimiseks kasutage järgmist valemit: =RAND()*(5-1)+1.

Tagastatud juhuslik arv jaotatakse intervalli peale ühtlaselt.

Iga kord, kui tööleht arvutatakse või töölehe mis tahes lahtri väärtus muutub, tagastatakse uus juhuslik arv. Kui soovite genereeritud populatsiooni salvestada, saate valemi asendada selle väärtusega.

  1. Klõpsake juhusliku arvuga lahtrit.
  2. Valige valemiribal valem.
  3. Vajutage F9. JA SISESTAGE.

Kontrollime esimese valimi juhuslike arvude jaotuse ühtlust jaotuse histogrammi abil.


Vertikaalsete väärtuste vahemik on sagedus. Horisontaalne - "taskud".



RANDBETWEEN funktsioon

Funktsiooni RANDBETWEEN süntaks on (alumine piir; ülemine piir). Esimene argument peab olema teisest väiksem. Vastasel juhul annab funktsioon veateate. Eeldatakse, et piirid on täisarvud. Valem jätab murdosa kõrvale.

Funktsiooni kasutamise näide:

Juhuslikud arvud täpsusega 0,1 ja 0,01:

Kuidas teha Excelis juhuslike arvude generaatorit

Teeme juhuslike arvude generaatori, mis genereerib väärtuse teatud vahemikust. Kasutame sellist valemit nagu: =INDEKS(A1:A10,TÄISARV(RAND()*10)+1).

Teeme juhuslike arvude generaatori vahemikus 0 kuni 100 sammuga 10.

Peate valima tekstiväärtuste loendist 2 juhuslikku. Funktsiooni RAND abil võrdleme tekstiväärtusi vahemikus A1:A7 juhuslike arvudega.

Kasutame funktsiooni INDEX, et valida algsest loendist kaks juhuslikku tekstiväärtust.

Loendist ühe juhusliku väärtuse valimiseks kasutage järgmist valemit: =INDEX(A1:A7,RANDBETWEEN(1,COUNT(A1:A7))).

Normaaljaotusega juhuslike arvude generaator

Funktsioonid RAND ja RANDBETWEEN toodavad ühtlase jaotusega juhuslikke numbreid. Iga sama tõenäosusega väärtus võib langeda soovitud vahemiku alumisse ja ülemisse piiri. Selle tulemuseks on suur erinevus sihtväärtusest.

Normaaljaotus tähendab, et suurem osa genereeritud arvudest on sihtarvu lähedal. Kohandame valemit RANDBETWEEN ja loome normaaljaotusega andmemassiivi.

Toote X maksumus on 100 rubla. Kogu toodetud partii järgib normaaljaotust. Juhuslik suurus järgib ka normaalset tõenäosusjaotust.

Sellistes tingimustes on vahemiku keskmine väärtus 100 rubla. Loome massiivi ja koostame normaaljaotusega graafiku standardhälbega 1,5 rubla.

Kasutame funktsiooni: =NORMINV(RAND();100;1.5).

Excel arvutas välja, millised väärtused olid tõenäosusvahemikus. Kuna 100 rubla maksumusega toote valmistamise tõenäosus on maksimaalne, näitab valem 100-le lähedasi väärtusi sagedamini kui teised.

Liigume edasi graafiku joonistamise juurde. Kõigepealt peate looma kategooriatega tabeli. Selleks jagame massiivi perioodideks:

Saadud andmete põhjal saame genereerida normaaljaotusega diagrammi. Väärtustelg on muutujate arv intervallis, kategooriatelg on perioodid.

  • Õpetus

Kas olete kunagi mõelnud, kuidas Math.random() töötab? Mis on juhuslik arv ja kuidas see saadakse? Kujutage ette intervjuu küsimust – kirjutage oma juhuslike numbrite generaator paari koodireale. Niisiis, mis see on, õnnetus ja kas seda on võimalik ennustada?

Mind paeluvad väga erinevad IT-mõistatused ja ülesanded ning juhuslike numbrite generaator on üks nendest ülesannetest. Tavaliselt sorteerin oma telegrammi kanalis igasuguseid mõistatusi ja erinevaid ülesandeid intervjuudest. Juhuslike arvude generaatori probleem on saavutanud suure populaarsuse ja ma tahtsin seda põlistada ühe autoriteetse teabeallika sügavuses - see tähendab siin Habré's.

See materjal on kasulik kõigile neile esiotsa ja Node.js-i arendajatele, kes on tehnoloogia tipptasemel ja soovivad sattuda plokiahela projekti/käivitusse, kus turvalisuse ja krüptograafiaga seotud küsimused on vähemalt olulised. algtase, küsivad nad isegi esiotsa arendajatelt.

Pseudojuhuslike arvude generaator ja juhuslike arvude generaator

Selleks, et saada midagi juhuslikku, vajame entroopia allikat, mingi kaose allikat, mida kasutame juhuslikkuse genereerimiseks.

Seda allikat kasutatakse entroopia kogumiseks ja seejärel algväärtuse (seeme) saamiseks, mis on vajalik juhuslike arvude generaatoritele (RNG) juhuslike arvude genereerimiseks.

Pseudojuhuslike numbrite generaator kasutab ühte seemet, seega ka pseudojuhuslikkust, samas kui juhuslike numbrite generaator genereerib alati juhusliku arvu, alustades kvaliteetsest juhuslikust väärtusest, mis on võetud erinevatest allikatest entroopia.

Entroopia on korratuse mõõt. Info entroopia on teabe määramatuse või ettearvamatuse mõõt.
Selgub, et pseudojuhusliku jada loomiseks vajame algoritmi, mis genereerib teatud jada teatud valem. Kuid sellist järjestust saab ennustada. Kujutagem siiski ette, kuidas saaksime kirjutada oma juhuslike arvude generaatori, kui meil poleks Math.random()

PRNG-l on algoritm, mida saab reprodutseerida.
RNG on protsess, mille käigus saadakse arvud täielikult mingist mürast, mille arvutamise võimalus kipub nulli. Samal ajal on RNG-l teatud algoritmid jaotuse võrdsustamiseks.

Me mõtleme välja oma PRNG-algoritmi

Pseudojuhuslike arvude generaator (PRNG) on algoritm, mis genereerib arvude jada, mille elemendid on üksteisest peaaegu sõltumatud ja järgivad etteantud jaotust (tavaliselt ühtlast).
Võime võtta mõne arvu jada ja võtta neist arvu mooduli. Lihtsaim näide, mis meelde tuleb. Peame mõtlema, millist järjestust võtta ja millest moodulit võtta. Kui teete 0-st N ja moodulist 2 otse, saate generaatori 1 ja 0:

Funktsioon* rand() ( const n = 100; const mod = 2; olgu i = 0; while (tõene) ( tootlus i % mod; kui (i++ > n) i = 0; ) ) olgu i = 0; for (lase x rand()) ( kui (i++ > 100) katkeb; console.log(x); )
See funktsioon genereerib jada 01010101010101... ja seda ei saa isegi pseudojuhuslikuks nimetada. Et generaator oleks juhuslik, peab see läbima testi järgmine osa. Kuid meil pole sellist ülesannet. Sellegipoolest saame ka ilma igasuguste testideta ennustada järgmist jada, mis tähendab, et selline algoritm ei sobi, kuid oleme õiges suunas.

Mis siis, kui võtame mõne tuntud, kuid mittelineaarse jada, näiteks arvu PI. Ja mooduli väärtuseks võtame mitte 2, vaid midagi muud. Võite isegi mõelda mooduli muutuva väärtuse peale. Pi numbrite jada loetakse juhuslikuks. Generaator saab töötada Pi-arvude abil, alustades mõnest tundmatust punktist. Sellise PI-põhise jada ja muutujamooduliga algoritmi näide:

Const vektor = [...Math.PI.toFixed(48).asendada(".","")]; function* rand() ( for (olgu i=3; i<1000; i++) { if (i >99) i = 2; jaoks (olgu n = 0; n

Kuid JS-is saab PI-numbrit kuvada ainult kuni 48 numbrit ja mitte rohkem. Seetõttu on sellist jada siiski lihtne ennustada ja iga sellise generaatori käitamine annab alati samu numbreid. Kuid meie generaator on juba hakanud näitama numbreid 0 kuni 9.

Saime arvude generaatori 0 kuni 9, kuid jaotus on väga ebaühtlane ja see genereerib iga kord sama jada.

Võime võtta mitte arvu Pi, vaid aja numbrilises esituses ja käsitleda seda arvu numbrite jadana ning selleks, et jada iga kord ei korduks, loeme seda lõpust. Kokkuvõttes näeb meie PRNG algoritm välja järgmine:< vector.length) yield (vector[n] % i); vector = newNumVector(); } } // TEST: let i = 0; for (let x of rand()) { if (i++ >Funktsioon* rand() ( olgu newNumVector = () => [...(+new Date)+""].reverse(); olgu vektor = newNumVector(); olgu i=2; while (tõene) ( ​​kui ( i++ > 99) i = 2, olgu n=-1;
100) vaheaeg;

console.log(x) See näeb juba välja nagu pseudojuhuslike numbrite generaator. Ja seesama Math.random() on PRNG, räägime sellest veidi hiljem. Pealegi saame iga kord erineva esinumbri. Tegelikult nendel lihtsaid näiteid

Saate aru, kuidas keerulisemad juhuslike arvude generaatorid töötavad.

Ja seal on isegi valmis algoritme. Näitena vaatame ühte neist – see on lineaarne kongruent PRNG (LCPRNG). Lineaarne kongruentne PRNG Lineaarne kongruentne PRNG (LCPRNG) on levinud meetod pseudojuhuslike arvude genereerimiseks. See ei ole krüptograafiliselt tugev. See meetod seisneb lineaarse korduva jada tingimuste arvutamises naturaalarv m, antud valemiga. Saadud jada oleneb stardinumbri valikust — st. seeme. Kell

erinevad tähendused<30; i++) console.log(rand())
Paljud programmeerimiskeeled kasutavad LCPRNG-d (kuid mitte täpselt seda algoritmi (!)).

Nagu eespool mainitud, saab sellist järjestust ennustada. Miks me siis PRNG-d vajame? Kui me räägime turvalisusest, siis PRNG on probleem. Kui räägime muudest ülesannetest, siis need omadused võivad olla plussiks. Näiteks erinevate eriefektide ja graafika animatsioonide puhul peate võib-olla sageli helistama juhuslikult. Ja siin on oluline tähenduste jaotus ja sooritus! Turvalised algoritmid ei saa kiirusega kiidelda.

Teine omadus on reprodutseeritavus. Mõned teostused võimaldavad teil määrata seemne ja see on väga kasulik, kui jada tuleb korrata. Paljundamine on vajalik näiteks katsetes. Ja on palju muid asju, mis ei nõua turvalist RNG-d.

Kuidas Math.random() töötab

Meetod Math.random() tagastab pseudojuhusliku ujukomaarvu vahemikust = crypto.getRandomValues(new Uint8Array(1)); console.log(rvalue)
Kuid erinevalt Math.random() PRNG-st on see meetod väga ressursimahukas. Fakt on see, et see generaator kasutab entroopiaallikatele (mac-aadress, protsessor, temperatuur jne) juurdepääsu saamiseks OS-is süsteemikutseid.

Palun aidake teenust ühe klõpsuga: Rääkige oma sõpradele generaatorist!

Interneti-numbrigeneraator ühe klõpsuga

Meie veebisaidil olev juhuslike arvude generaator on väga mugav. Näiteks saab seda kasutada loosimistes ja loteriides võitja selgitamiseks. Võitjad määratakse sel viisil: programm toodab ühe või mitu numbrit mis tahes teie määratud vahemikus. Petturlikud tulemused saab kohe välistada. Ja tänu sellele selgitab võitja välja aus valik.

Mõnikord on vaja korraga saada teatud arv juhuslikke arve. Näiteks soovite täita loosipileti "4 35-st", usaldades juhust. Saate kontrollida: kui viskate münti 32 korda, siis kui suur on tõenäosus, et järjest ilmub 10 pööret (peadele/sabadele võib vabalt omistada numbrid 0 ja 1)?

Juhuslike arvude veebivideo juhendamine – randomiseerija

Meie numbrigeneraatorit on väga lihtne kasutada. See ei nõua programmi arvutisse allalaadimist – seda saab kasutada võrgus. Vajaliku numbri saamiseks tuleb määrata juhuslike numbrite vahemik, kogus ja soovi korral numbrieraldaja ning välistada kordused.

Juhuslike arvude genereerimiseks kindlas sagedusvahemikus tehke järgmist.

  • Valige vahemik;
  • Määrake juhuslike arvude arv;
  • Numbrieraldaja funktsioon tagab nende kuvamise ilu ja mugavuse;
  • Vajadusel lubage/keelake kordused, kasutades märkeruutu;
  • Klõpsake nuppu "Genereeri".

Selle tulemusena saate antud vahemikus juhuslikke numbreid. Numbrigeneraatori tulemust saab kopeerida või saata e-postiga. Parim oleks sellest genereerimisprotsessist teha ekraanipilt või video. Meie randomiseerija lahendab kõik teie probleemid!

Numbrid saadavad meid kõikjal – maja- ja korterinumbrid, telefoninumbrid, autod, passid, plastikkaardid, kuupäevad, meiliparoolid. Mõned numbrikombinatsioonid valime ise, kuid enamiku saame juhuslikult. Eneselegi märkamata kasutame iga päev juhuslikult genereeritud numbreid. Kui mõtleme välja PIN-koodid, siis unikaalsed krediit- või palgakaardikoodid genereerivad usaldusväärsed süsteemid, mis välistavad juurdepääsu paroolidele. Juhuslike numbrite generaatorid pakuvad turvalisust valdkondades, mis nõuavad töötlemiskiirust, turvalisust ja andmete sõltumatust.

Pseudojuhuslike numbrite genereerimise protsess allub teatud seadustele ja seda on pikka aega kasutatud näiteks loteriides. Lähiminevikus viidi loosimised läbi loteriiautomaatide või loosimiste abil. Nüüd määratakse paljudes riikides riiklike loteriide võidunumbrid täpselt genereeritud juhuslike numbrite komplekti abil.

Meetodi eelised

Seega on juhuslike arvude generaator iseseisev kaasaegne mehhanism arvude kombinatsioonide juhuslikuks määramiseks. Selle meetodi ainulaadsus ja täiuslikkus seisneb välise sekkumise võimatuses protsessi. Generaator on programmide komplekt, mis on ehitatud näiteks müradioodidele. Seade genereerib juhusliku müra voogu, mille praegused väärtused teisendatakse numbriteks ja moodustavad kombinatsioonid.

Numbrite genereerimine annab kohesed tulemused – kombinatsiooni loomiseks kulub paar sekundit. Kui rääkida loteriidest, saavad osalejad kohe teada, kas pileti number ühtib võidunumbriga. See võimaldab joonistusi pidada nii sageli, kui osalejad soovivad. Kuid meetodi peamine eelis on selle ettearvamatus ja numbrite valimise algoritmi arvutamise võimatus.

Kuidas pseudojuhuslikud arvud genereeritakse

Tegelikult pole juhuslikud arvud juhuslikud – seeria algab etteantud arvust ja genereeritakse algoritmi abil. Pseudojuhuslike arvude generaator (PRNG või PRNG – pseudojuhuslike arvude generaator) on algoritm, mis genereerib näiliselt mitteseotud arvude jada, mis tavaliselt allub ühtlasele jaotusele. Arvutiteaduses kasutatakse pseudojuhuslikke numbreid paljudes rakendustes: krüptograafias, simulatsioonimodelleerimises, Monte Carlo meetodis jne. Tulemuse kvaliteet sõltub PRNG omadustest.

Tekkeallikaks võib olla füüsiline müra kosmilisest kiirgusest kuni mürani takistis, kuid selliseid seadmeid ei kasutata võrguturbe rakendustes peaaegu kunagi. Krüptograafilised rakendused kasutavad spetsiaalseid algoritme, mis genereerivad järjestusi, mis ei saa olla statistiliselt juhuslikud. Õigesti valitud algoritm võib aga toota arvuseeriaid, mis läbivad enamiku juhuslikkuse teste. Kordusperiood sellistes jadades on suurem kui tööintervall, millest numbrid võetakse.

Paljud kaasaegsed protsessorid sisaldavad PRNG-d, näiteks RdRand. Alternatiivina luuakse juhuslike arvude komplektid ja avaldatakse need ühekordses märkmikus (sõnaraamatus). Sel juhul on numbrite allikas piiratud ega taga võrgu täielikku turvalisust.

PRNG ajalugu

Juhuslike arvude generaatori prototüübiks võib pidada Vana-Egiptuses aastal 3500 eKr laialt levinud lauamängu Senet. Vastavalt tingimustele osales kaks mängijat, käigud määrati nelja lapiku mustvalge pulga viskamisega - need olid omamoodi tolleaegsed PRNG-d. Ühel ajal visati keppe ja loeti punkte: kui üks kukkus valge küljega üles, siis 1 punkt ja lisakäik, kaks valget - kaks punkti jne. Maksimaalse tulemuse viis punkti sai musta küljega neli kepi visanud mängija.

Tänapäeval on ERNIE generaatorit Ühendkuningriigis loterii loosimiseks kasutatud juba aastaid. Võiduarvude genereerimiseks on kaks peamist meetodit: lineaarne kongruent ja liitkongruent. Need ja teised meetodid põhinevad juhusliku valiku põhimõttel ja neid pakub tarkvara, mis toodab lõputult numbreid, mille järjestust on võimatu ära arvata.

PRNG töötab pidevalt, näiteks mänguautomaatides. USA seaduste järgi on see kohustuslik tingimus, mida kõik tarkvarapakkujad peavad täitma.

Jne ja kontoomanikud kasutavad seda kogukonda uute vaatajaskondade meelitamiseks.

Selliste loosimiste tulemus sõltub sageli kasutaja õnnest, kuna auhinna saaja määratakse juhuslikult.

Selle otsuse tegemiseks kasutavad loteriikorraldajad peaaegu alati veebipõhist või eelinstallitud juhuslike numbrite generaatorit, mida levitatakse tasuta.

Valik

Üsna sageli võib sellise generaatori valimine olla keeruline, kuna nende funktsionaalsus on üsna erinev - mõne jaoks on see oluliselt piiratud, teiste jaoks üsna lai.

Selliseid teenuseid rakendatakse üsna palju, kuid raskuseks on see, et need erinevad ulatuse poolest.

Paljud on näiteks oma funktsionaalsuse tõttu seotud konkreetse sotsiaalvõrgustikuga (näiteks töötavad paljud generaatorirakendused ainult selle võrgustiku linkidega).

Lihtsamad generaatorid määravad lihtsalt juhuslikult arvu antud vahemikus.

See on mugav, kuna see ei seosta tulemust konkreetse postitusega, mis tähendab, et seda saab kasutada loosimiseks väljaspool suhtlusvõrgustikku ja mitmesugustes muudes olukordades.

Sisuliselt pole neil muud kasutust.

Nõuanne! Sobivaima generaatori valikul on oluline läbi mõelda, milleks seda kasutama hakatakse.

Tehnilised andmed

Juhuslike arvude genereerimiseks optimaalse võrguteenuse valimise kiiremaks protsessiks on allolevas tabelis näidatud selliste rakenduste peamised tehnilised omadused ja funktsionaalsus.

Tabel 1. Juhusliku arvu genereerimiseks mõeldud võrgurakenduste toimimise tunnused
Nimi Sotsiaalne võrgustik Mitu tulemust Valige numbrite loendist Veebividin saidi jaoks Valige vahemikust Korduste keelamine
RandStuff Jah Jah Ei Jah Ei
Valatud partiid Ametlik veebisait või VKontakte Ei Ei Jah Jah Jah
Juhuslik arv Ametlik veebisait Ei Ei Ei Jah Jah
Randomus Ametlik veebisait Jah Ei Ei Jah Ei
Juhuslikud numbrid Ametlik veebisait Jah Ei Ei Ei Ei

Kõiki tabelis käsitletud rakendusi kirjeldatakse üksikasjalikumalt allpool.

RandStuff

Saate seda rakendust võrgus kasutada, järgides selle ametliku veebisaidi linki http://randstuff.ru/number/.

See on lihtne juhuslike arvude generaator, mida iseloomustab kiire ja stabiilne töö.

Seda rakendatakse edukalt nii eraldiseisva rakendusena ametlikul veebisaidil kui ka rakendusena .

Selle teenuse eripära on see, et see saab valida juhusliku arvu nii määratud vahemikust kui ka konkreetsest saidil määratavate numbrite loendist.

  • Stabiilne ja kiire töö;
  • Otsese ühenduse puudumine sotsiaalse võrgustikuga;
  • Saate valida ühe või mitu numbrit;
  • Saate valida ainult määratud numbrite hulgast.

Kasutajate ülevaated selle rakenduse kohta on järgmised: "Selle teenuse kaudu määrame VKontakte'i gruppides võitjad. Aitäh, "Olete parim", "Ma kasutan ainult seda teenust."

Valatud partiid

See rakendus on lihtne funktsioonide generaator, mida rakendatakse ametlikul veebisaidil VKontakte'i rakenduse kujul.

Teie veebisaidile sisestamiseks on olemas ka generaatori vidin.

Peamine erinevus eelmisest kirjeldatud rakendusest on see, et see võimaldab teil tulemuse kordamise keelata.