Princíp činnosti generátora náhodných čísel. Popis: Generátor čísel lotérie

06.04.2019

Na makroskopických náhodných procesoch využívajúcich také jednoduché objekty ako kocky, ruleta alebo mince, môžu byť založené generátory náhodné čísla . Teória chaosu a teória nestabilných dynamických systémov môžu vysvetliť prítomnosť nepredvídateľnosti v údajoch a dokonca aj makroskopické systémy úplne definované Newtonovými rovnicami majú v praxi často nepredvídateľný výstup, pretože závisí od mikroskopických detailov počiatočných podmienok.

Mimochodom, na našej webovej stránke môžete vygenerovať náhodné číslo pomocou online generátora náhodných čísel.

Čo je generátor náhodných čísel a ako využíva náhodné fyzikálne procesy?

Rýchlosť získavania náhodných čísel, postačujúce pre aplikované problémy, nemôžu byť poskytnuté zariadeniami, ktoré sú založené na makroskopických náhodných procesoch. Zdroj šumu, z ktorého sa extrahujú náhodné bity, je preto jadrom moderných AGNG. Existujú dva typy zdrojov hluku: tie, ktoré sú kvantovej povahy a tie, ktoré nevyužívajú kvantové javy.

Niektorí prirodzený fenomén, ako je rádioaktívny rozpad atómov, sú absolútne náhodné a v zásade sa nedajú predpovedať (Davissonov-Germerov experiment možno považovať za jeden z prvých experimentov, ktoré dokazujú pravdepodobnostnú povahu niektorých javov), táto skutočnosť je dôsledkom tzv. zákony kvantovej fyziky. A zo štatistickej mechaniky vyplýva, že každý systém vo svojich parametroch má náhodné výkyvy, ak sa teplota nerovná absolútnej nule.

Komplexný generátor náhodných čísel.

Pre AGS sú „zlatým štandardom“ niektoré z kvantových mechanických procesov, pretože sú úplne náhodné. Použitie v generátory náhodných čísel javy zahŕňajú:

  • Výstrelný hluk je hluk, ktorý je v elektrických obvodoch spôsobený diskrétnosťou nosičov nabíjačka a tento termín tiež označuje šum spôsobený v optických prístrojoch diskrétnosťou svetelného nosiča.
  • Spontánny parametrický rozptyl je možné použiť aj v generátory náhodných čísel.
  • Rádioaktívny rozpad – má náhodnosť každej z jednotlivých rozpadových udalostí, preto sa využíva ako zdroj hluku. V dôsledku toho do prijímača zasiahne iný počet častíc v rôznych časových intervaloch (môže to byť Geigerov počítač alebo scintilačný počítač).

Je oveľa jednoduchšie odhaliť nekvantové javy, ale na ich základe generátory náhodných čísel, potom budú mať silnú závislosť od teploty (napríklad množstvo tepelného šumu bude úmerné teplote životné prostredie). Medzi tými, ktoré sa používajú v AGNG, možno zaznamenať nasledujúce procesy:

  • Tepelný šum v rezistore, ktorý po zosilnení vytvára generátor náhodného napätia. Na tomto jave bol založený najmä generátor čísel v počítači Ferranti Mark 1.
  • Atmosférický šum, ktorý je meraný rádiovým prijímačom, môže zahŕňať aj príjem častíc prilietajúcich z vesmíru na Zem, zaregistrovaný prijímačom a ich počet bude náhodný, v rôznych časových intervaloch.
  • Rozdiel v rýchlosti hodín je jav, ktorý znamená, že rýchlosti rôznych hodín sa vôbec nezhodujú.

Získať z fyzického náhodného procesu sekvencia náhodných bitov, potom na to existuje niekoľko prístupov. Jedným z nich je, že prijatý signál-šum je zosilnený, potom filtrovaný a privádzaný na vstup vysokorýchlostného komparátora napätia, aby sa získal logický signál. Trvanie stavov porovnávača bude náhodné a to vám umožňuje vytvárať postupnosť náhodných čísel pri meraní týchto stavov.

Druhý prístup spočíva v tom, že na vstup analógovo-digitálneho prevodníka (možno použiť špeciálne zariadenia aj zvukový vstup počítača) sa privedie náhodný signál, ktorý predstavuje sekvenciu náhodných čísel, čo povedie k digitalizácii signál a zároveň ho možno softvérovo spracovať .

Čo je generátor náhodných čísel a aké ďalšie javy využíva?

Pomocou fyzického náhodné procesygenerátory náhodných čísel, umožňujú získať dobré náhodné čísla, ale ich výroba je drahá a pomerne náročná (najmä pre tie ANGN, ktoré sú založené na rádioaktívnom rozpade), ale existujú aj iné dostupnejšie zdroje náhodnosti:

Jednoduché generovanie náhodných čísel.

K najneobvyklejším generátorom treba zaradiť prácu digitálnych videokamier, ktoré využívajú záznam makroskopických javov. Napríklad, na generovanie náhodných čísel, tím zo Silicon Graphics použil video záznam lávovej lampy, pretože vosk v lampe chaoticky mení svoj tvar. Prúdy z ventilátora v prúde vzduchu alebo bubliny v akváriu môžu byť tiež použité ako motív na fotografovanie.

  • Preklad

Predstavte si, že je rok 1995 a chystáte sa uskutočniť svoj prvý online nákup. Otvoríte prehliadač Netscape a popíjate kávu domovskej stránke Načítava sa pomaly. Vaša cesta leží na Amazon.com – novom internetovom obchode, o ktorom vám povedal priateľ. Keď príde fáza dokončenia nákupu a zadania osobných údajov, adresa v prehliadači sa zmení z „http“ na „https“. To signalizuje, že počítač nadviazal šifrované spojenie so serverom Amazon. Teraz môžete odosielať údaje na server kreditná karta bez strachu z podvodníkov, ktorí chcú zachytiť informácie.

Bohužiaľ, váš prvý online nákup bol od samého začiatku kompromitovaný: čoskoro zistíte, že údajne bezpečný protokol, ktorý používa prehliadač na vytvorenie spojenia, v skutočnosti nie je príliš bezpečný.

Problém je v tom, že tajné kľúče, ktoré Netscape použil, neboli dostatočne náhodné. Boli dlhé iba 40 bitov, čo znamená asi bilión možných kombinácií. Zdá sa Vysoké číslo, no hackerom sa tieto kódy podarilo prelomiť aj na počítačoch z 90. rokov minulého storočia za približne 30 hodín. Údajne náhodné číslo, ktoré Netscape použil na generovanie tajného kľúča, bolo založené na práve tri významy: čas dňa, ID procesu a ID procesu matky sú predvídateľné. Z tohto dôvodu sa útočníkovi podarilo znížiť počet možností hrubou silou a nájsť požadovaný kľúč oveľa skôr, ako Netscape očakával.

Programátori Netscape by radi použili na generovanie kľúča úplne náhodné čísla, ale nevedeli, ako ich získať. Dôvodom je to digitálnych počítačov sú vždy v presne definovanom stave, ktorý sa zmení až po prijatí určitého príkazu z programu. Najlepšie, čo môžete urobiť, je napodobniť náhodnosť generovaním takzvaných pseudonáhodných čísel pomocou špeciálnej matematickej funkcie. Sada takýchto čísel sa na prvý pohľad javí ako úplne náhodná, ale niekto iný pomocou rovnakého postupu by mohol ľahko vygenerovať presne tie isté čísla, takže sú zvyčajne slabé na šifrovanie.

Výskumníkom sa podarilo vynájsť generátory pseudonáhodných čísel, o ktorých sa zistilo, že sú kryptograficky bezpečné. Ale musia začať s dobrým náhodným semienkom, inak budú vždy generovať rovnakú sadu čísel. A pre túto počiatočnú hodnotu potrebujete niečo, čo je skutočne nemožné uhádnuť alebo predpovedať.

Našťastie nie je ťažké získať skutočne nepredvídateľné hodnoty pomocou chaotického vesmíru, ktorý obklopuje prísne deterministický svet počítačových bitov zo všetkých strán. Ale ako presne to urobiť?

Počas v posledných rokoch existuje online zdroj náhodných čísel s názvom Lavarand. Bol vytvorený v roku 1996 na automatické generovanie náhodných hodnôt spracovaním fotografií dekoratívnej lampy - lávovej lampy, ktorá každú sekundu mení svoj vzhľad nepredvídateľným spôsobom. Odvtedy boli náhodné hodnoty z tohto zdroja použité viac ako miliónkrát.

Existujú aj sofistikovanejšie hardvérové ​​generátory náhodných čísel, ktoré detegujú kvantové efekty, ako napríklad dopad fotónov na zrkadlo. Náhodné čísla môžete získať na bežnom počítači zaznamenávaním nepredvídateľných udalostí, ako je napríklad presný čas, kedy ste stlačili tlačidlo klávesnice. Ale aby ste získali veľké množstvo takýchto náhodných hodnôt, musíte stlačiť veľa tlačidiel.

S kolegami v spoločnosti Intel sme sa rozhodli, že musíme urobiť jednoduchší spôsob. To je dôvod, prečo mnoho našich čipsetov obsahuje analógový hardvérový generátor náhodných čísel už viac ako desať rokov. Problém je v tom, že jeho analógový obvod plytvá energiou. Okrem toho je ťažké zachovať funkčnosť tohto analógového obvodu, pretože proces výroby čipu sa zlepšuje a miniaturizuje. Preto sme teraz vyvinuli nový a úplne digitálny systém, ktorý umožňuje mikroprocesoru generovať bohatý prúd náhodných hodnôt bez týchto problémov. Tento nový digitálny generátor náhodných čísel k vám čoskoro príde s novým procesorom.

Prvý pokus Intelu Výroba najlepšieho generátora náhodných čísel na bežných počítačoch sa datuje do roku 1999, keď spoločnosť Intel predstavila komponent Firmware Hub pre čipsety. Generátor náhodných čísel čipu (PDF) je dizajn analógového prstencového oscilátora, ktorý sníma tepelný šum z rezistorov, zosilňuje ho a používa výsledný signál na zmenu periódy relatívne pomalého generátora hodín. Pre každý nepredvídateľný „tik“ tohto pomalého generátora mikroobvod uložil frekvenciu kmitov druhého, rýchleho generátora, ktorý pravidelne mení svoju hodnotu medzi dvoma binárnymi stavmi: 0 a 1. Výsledkom je nepredvídateľná sekvencia núl a jednotiek.

Problém je v tom, že prstencový oscilátor, ktorý je zodpovedný za zosilnenie tepelného signálu, spotrebúva príliš veľa energie – a beží neustále bez ohľadu na to, či v ňom počítač potrebuje náhodné čísla alebo nie. tento moment. Tieto analógové komponenty sú tiež na obtiaž vždy, keď spoločnosť zmení proces výroby čipov. Každých pár rokov spoločnosť modernizuje svoje výrobné linky, aby vyrábala čipy v menšom meradle. A zakaždým, keď je potrebné tento analógový fragment kalibrovať a testovať novým spôsobom - táto zložitá a starostlivá práca sa stala skutočnou bolesťou hlavy.

Preto sa v roku 2008 Intel rozhodol vyvinúť generátor náhodných čísel, ktorý funguje výlučne na digitálnej báze. Výskumníci zo spoločnosti v Hillsboro (Oregon, USA) spolu s inžiniermi v Design Lab v Bangalore (India) začali študovať kľúčový problém - ako získať náhodný prúd bitov bez použitia analógových obvodov.

Je iróniou, že ich navrhované riešenie porušuje základné pravidlo digitálneho dizajnu, že obvod musí byť vždy v určitej polohe a vrátiť buď logickú 0 alebo 1. Samozrejme, digitálny prvok môže stráviť krátke časové úseky v neurčitej polohe, prepínať medzi týmito dvoma hodnotami. Musí však fungovať mimoriadne presne a nikdy by medzi nimi nemal oscilovať, inak spôsobí oneskorenie alebo dokonca poruchu v systéme. V našom generátore náhodných bitov sú fluktuácie vlastnosťou, nie chybou.

Náš predchádzajúci analógový generátor bol schopný produkovať iba niekoľko stoviek kilobitov náhodných čísel za sekundu, zatiaľ čo nový ich generuje rýchlosťou približne 3 Gb/s. Začína sa zhromažďovaním takmer náhodných hodnôt dvoch meničov do 512-bitových blokov. Tieto bloky sú následne rozdelené do párov 256-bitových čísel. Samozrejme, ak pôvodných 512 bitov nie je úplne náhodných, ani tieto 256 bitové čísla nebudú úplne náhodné. Môžu sa však matematicky kombinovať, aby sa vytvorilo 256-bitové číslo, ktoré sa blíži ideálu.


TRI ÚROVNE ČÍSEL: Generátor náhodných čísel Intel Bull Mountain zabraňuje akýmkoľvek zmenám v predvídateľnosti prostredníctvom procesu pozostávajúceho z troch krokov. Po prvé, digitálny obvod generuje prúd náhodných bitov. Potom „normalizátor“ (kondicionér) generuje dobré náhodné semená na základe tohto prúdu. V tretej fáze generátor pseudonáhodných čísel vytvára prúd číslic na použitie v softvér.

Toto všetko lepšie ilustruje jednoduchá ilustrácia. Predpokladajme na sekundu, že generátor náhodných bitov vytvára 8-bitové vzory, to znamená čísla v rozsahu od 0 do 255. Predpokladajme tiež, že tieto 8-bitové čísla nie sú úplne náhodné. Teraz si predstavte, že napríklad nejaká jemná chyba v obvode posunie výstupné hodnoty do spodnej časti rozsahu. Na prvý pohľad sa tok náhodných čísel zdá byť dobrý, ale ak spracujete milióny hodnôt, všimnete si, že čísla v hornej časti rozsahu sú o niečo menej bežné ako čísla v dolnej časti.

Jedno z možných riešení tohto problému je jednoduché: vždy vezmite pár 8-bitových čísel, vynásobte ich a potom zahoďte prvých osem bitov výsledného 16-bitového čísla. Tento postup takmer úplne odstráni skreslenie.

Bull Mountain nefunguje s 8-bitovými číslami: funguje, ako už bolo uvedené, s 256-bitovými číslami. A nenásobí ich, ale vykonáva zložitejšie kryptografické operácie. Ale základná myšlienka je rovnaká. Tento krok si môžete predstaviť ako „normalizáciu“, aby ste odstránili akékoľvek odchýlky od náhodného rozloženia čísel, ktoré sa môžu vyskytnúť v obvode s dvoma invertormi.

Naozaj chceme v noci dobre spať, preto sme navrhli ďalšie obvody, ktoré testujú toky 256-bitových čísel, ktoré idú do „normalizátora“, aby neboli príliš skreslené jedným smerom. Ak sa zistí, označíme ho ako chybný a nezodpovedajúci štandardu. Operácie sa teda vykonávajú iba s kvalitnými pármi čísel.

Zaručená náhodnosť nestačí, ak sa náhodné hodnoty nevytvoria dostatočne rýchlo, aby spĺňali normy. Hoci hardvérová slučka generuje vlákno oveľa rýchlejšie ako jej predchodcovia, na niektoré moderné úlohy to stále nestačí. Aby spoločnosť Bull Mountain mohla produkovať náhodné čísla tak rýchlo, ako softvérové ​​generátory pseudonáhodných čísel produkujú stream, ale zároveň šetriť vysoká kvalita náhodné čísla, pridali sme do schémy ešte jednu úroveň. Tu sa 256-bitové náhodné čísla používajú ako kryptograficky bezpečné náhodné semená na generovanie veľká kvantita pseudonáhodné 128-bitové čísla. Keďže 256-bitové čísla sú dodávané na 3 GHz, je zaručený dostatok materiálu na rýchle generovanie kryptografických kľúčov.

Nová inštrukcia s názvom RdRand umožňuje programu, ktorý potrebuje náhodné čísla, aby zadal požiadavku hardvéru, ktorý ich vytvára. Inštrukcia RdRand, navrhnutá pre 64-bitové procesory Intel, je kľúčom ku generátoru Bull Mountain. Extrahuje 16-, 32- alebo 64-bitové náhodné hodnoty a umiestňuje ich do programom prístupného registra. Inštrukcia RdRand bola sprístupnená verejnosti približne pred rokom a prvý procesor Intel, ktorý ju bude podporovať, bude Ivy Bridge. Nový čipset je o 37 % rýchlejší ako jeho predchodca a veľkosť jeho minimálnych prvkov sa zmenšila z 32 na 22 nanometrov. Celkové zvýšenie výkonu dobre zapadá do potrieb nášho generátora náhodných čísel.

Hoci lávové lampy vyzerať štýlovo, nebudú sa hodiť do každého interiéru. Myslíme si, že náš prístup ku generovaniu náhodných čísel, naopak, nájde najuniverzálnejšie uplatnenie.

Ako už bolo spomenuté, zaznamenávanie presného načasovania stlačenia klávesov sa v minulosti používalo ako vhodný zdroj náhodných počiatočných hodnôt pre generátory. Na rovnaké účely sme použili pohyby myši a dokonca aj rýchlosť vyhľadávania sektorov na pevnom disku. Takéto udalosti vám však nie vždy poskytnú dostatok náhodných bitov a po určitom čase merania sa tieto bity stanú predvídateľnými. Horšie je, že teraz žijeme vo svete serverov s

Každý deň sa čoraz viac ľudí zaujíma o online kasína. Pre niekoho sú tieto hry jednoducho zábavou, iní ich považujú za spôsob zárobku. Asi každého z hráčov bude zaujímať, ako funguje generátor náhodných čísel, ktorý produkuje šťastné kombinácie.

Zariadenie hracieho automatu

Moderné hracie automaty http://igrat-avtomati-wulcan.com má pomerne zložitý algoritmus, ktorý vytvára výherné kombinácie. Dá sa rozdeliť na časti: Senzory vo forme generátorov, počítadlo, ktoré prijíma platby a rozdáva výhry, úložný systém pre veľké ceny vo forme jackpotu, algoritmus vo forme jadra na vydávanie výherných prostriedkov. Tieto algoritmy sú formované do mechanickej štruktúry vo forme slotov alebo rulety.

Senzor náhodných kombinácií a čísel. (RNG)

Teraz môžeme popísať fungovanie samotného RNG. Takéto senzory boli vyvinuté so zámerom urobiť hru čo najmenej predvídateľnou. Táto schéma funguje vďaka rovnako pravdepodobnému faktoru, napríklad zastaví guľôčku v rôznych otvoroch na rulete. So slotmi systém funguje úplne rovnako, len zastavuje symboly.

V modernom herný automat, vývojár môže nainštalovať viac ako jeden RNG. Ak si ako príklad zoberieme hru tri sedmičky, snímačov pre jednotlivé kombinácie môže byť viacero, ako aj samostatné druhy senzor na zastavenie čísel digitálneho kolesa alebo bubna.

V hrách ako Polka Miracles sú nainštalované senzory na zastavenie čísel v hre, ako aj senzory, ktoré vypočítavajú časový interval každej hry a zaznamenávajú prechod na iné. hracie polia. Použitie viac ako jedného senzora má za cieľ znížiť počet náhodných výhier. Tiež pre veľké ceny vo forme jackpotov sú zvyčajne inštalované samostatné senzory, ktoré dávajú výherná kombinácia náhodou sa to nedá vypočítať.

Ak uvažujeme o generátore náhodných čísel z matematického hľadiska, nie je možné vypočítať jeho činnosť pomocou rôznych vzorcov. Ak však vezmete do úvahy už víťaznú situáciu a vykonáte výpočty od začiatku jednej hry do konca, stále môžete napísať vzorec. Je smutné, že po vydaní jackpotu sa čísla budú generovať aj naďalej. nový vzorec, ktorý bude známy až podľa výsledku partie.

Existuje tiež názor, že vlastník stroja môže nakonfigurovať nastavenia snímača tak, aby sa každý výherný slot objavil podmienečne každých 300 alebo 500 hier, ale samotný majiteľ nemôže presne vedieť, koľko odvodených algoritmov bude mať za následok presné víťazstvo. Ale to, že senzory sú nastaviteľné, je fakt. Aby nedošlo ku konfliktu záujmov, nainštalujú nie jeden senzor, ale hneď niekoľko, inak by majiteľ herne zostal vždy v pluse a inak by na senzor mohol prísť každý šikovný človek a vyčistiť pokladňu kasína. takmer legálnym spôsobom.

Princíp fungovania generátora náhodných čísel je známy svojou nepredvídateľnosťou, dá sa však aspoň trochu analyzovať, no v spojení s niekoľkými ďalšími senzormi je všetko oveľa mätúce, vďaka čomu je kasíno úspešné v hazardných hrách. prečo je mimoriadne populárny po celom svete.

Čo je náhodnosť v počítači? Ako sa generujú náhodné čísla? V tomto článku sme sa pokúsili poskytnúť jednoduché odpovede na tieto otázky.

V softvéri a v technológii všeobecne existuje potreba reprodukovateľnej náhodnosti: čísla a obrázky, ktoré sa javia ako náhodné, sú v skutočnosti generované špecifickým algoritmom. Toto sa nazýva pseudonáhodnosť a my sa na to pozrieme jednoduchými spôsobmi vytváranie pseudonáhodných čísel. Na konci článku sformulujeme jednoduchú vetu na generovanie týchto zdanlivo náhodných čísel.

Určiť, čo presne predstavuje nehodu, môže byť dosť náročné. Existujú testy (ako zložitosť Kolmogorova), ktoré vám môžu dať presná hodnota ako náhodná je konkrétna sekvencia. Ale nebudeme sa obťažovať, len sa pokúsime vytvoriť postupnosť čísel, ktoré sa budú zdať navzájom nesúvisiace.

Často nie je potrebné len jedno číslo, ale niekoľko náhodných čísel generovaných nepretržite. Preto daný pôvodná hodnota, musíme vytvoriť ďalšie náhodné čísla. Táto počiatočná hodnota sa nazýva semeno, a uvidíme, ako ho získať neskôr. Zatiaľ sa sústreďme na vytváranie ďalších náhodných hodnôt.

Generovanie náhodných čísel zo semena

Jedným z prístupov môže byť použiť nejaký bláznivý matematický vzorec na semienko, potom ho skrútiť natoľko, že výstupné číslo sa zdá byť nepredvídateľné, a potom to brať ako základ pre ďalšiu iteráciu. Jedinou otázkou je, ako by mala táto funkcia skreslenia vyzerať.

Poďme experimentovať s touto myšlienkou a uvidíme, kam nás zavedie.

Funkcia skreslenia prevezme jednu hodnotu a vráti inú. Nazvime to R.

R (Vstup) -> Výstup

Ak je hodnota nášho semena 1, potom R vytvorí sériu 1, 2, 3, 4,... Toto vôbec nevyzerá náhodne, ale dostaneme sa k tomu. Nech R teraz pridá konštantu namiesto 1.

R(x) = x + c

Ak sa c rovná napríklad 7, potom dostaneme rad 1, 8, 15, 22, ... Stále to nie je to isté. Je zrejmé, že nám chýba, aby sa čísla nielen zvyšovali, ale mali by byť rozložené v určitom rozsahu. Potrebujeme, aby sa naša postupnosť vrátila na začiatok – kruh čísel!

Číselný kruh

Pozrime sa na ciferník: náš rad začína na 1 a ide dookola do 12. Ale keďže pracujeme s počítačom, nechajme tam 0 namiesto 12.

Teraz od 1 opäť pridáme 7. Pokrok! Vidíme, že po 12 sa naša séria začína opakovať, bez ohľadu na to, s akým číslom začneme.

Tu dostávame veľmi dôležitú vlastnosť: ak sa naša slučka skladá z n prvkov, potom maximálny počet prvkov, ktoré môžeme získať, kým sa začnú opakovať, je n.

Teraz prepíšme funkciu R, aby zodpovedala našej logike. Dĺžku slučky môžete obmedziť pomocou operátora modulu alebo operátora zvyšku.

R(x) = (x + c) % m

R(x) = (x + c) % m

V tomto bode si môžete všimnúť, že niektoré čísla sa nezmestia do c. Ak c = 4 a začali by sme na 1, naša postupnosť by bola 1, 5, 9, 1, 5, 9, 1, 5, 9, ... čo nám samozrejme nefunguje, pretože táto postupnosť je absolútne nie náhodne. Je zrejmé, že čísla, ktoré si vyberieme pre dĺžku slučky a dĺžku skoku, musia byť spojené osobitným spôsobom.

Ak vyskúšate niekoľko rôzne významy, potom môžete vidieť jednu vlastnosť: m a c musia byť relatívne prvočíslo.

Doteraz sme robili skoky sčítaním, ale čo keď použijeme násobenie? Poďme sa množiť X na konštantu a.

R(x) = (ax + c) % m

R(x) = (ax + c) % m

Vlastnosti, ktoré musí spĺňať, aby sa vytvoril plný cyklus, sú trochu konkrétnejšie. Ak chcete vytvoriť platnú slučku:

  1. (a - 1) musí byť deliteľné všetkými hlavné faktory m
  2. (a - 1) musí byť deliteľné 4, ak m je deliteľné 4

Tieto vlastnosti spolu s pravidlom, že m a c musia byť relatívne prvočísla, tvoria Hull-Dobellovu vetu. Nebudeme sa pozerať na jeho dôkaz, ale ak by ste vzali veľa rôznych hodnôt pre rôzne konštanty, mohli by ste dospieť k rovnakému záveru.

Výber semien

Teraz je čas hovoriť o zábavnej časti: výber počiatočného semena. Mohli by sme z toho urobiť konštantu. To môže byť užitočné v prípadoch, keď potrebujete náhodné čísla, ale chcete, aby boli rovnaké pri každom spustení programu. Napríklad vytvorenie rovnakej mapy pre každú hru.

Ďalším spôsobom je získať seed z nového zdroja pri každom spustení programu, napríklad systémových hodín. To je užitočné, keď potrebujete celkové náhodné číslo, ako napríklad v programe na hádzanie kockou.

Konečný výsledok

Keď funkciu aplikujeme na jej výsledok niekoľkokrát, dostaneme rekurentný vzťah. Napíšme náš vzorec pomocou rekurzie.

Overili ste si niekedy tvrdenie, že z 10 roztočení rulety padne 5-krát párne číslo? Alebo ste sa už niekoľkokrát zúčastnili lotérie a dokonca sa vám podarilo vyhrať? Ak pripustíme, že všetky výsledky sú skutočne náhodné, potom môžeme hovoriť o pravdepodobnosti výskytu konkrétnej udalosti.

Aby sme parafrázovali posledné tvrdenie, zopakujme slová ľudí, ktorí sa už mesiace zúčastňujú udalostí s náhodnými výsledkami: Všemohúci náhoda funguje.

Ako teda môžete skontrolovať, či je princíp rozdelenia náhodný? Túto úlohu zvládne generátor náhodných čísel. Jeho hlavnou výhodou je, že funguje online, čiže je veľmi rýchly a po stiahnutí nezávisí od prítomnosti internetového pripojenia.

Ako funguje generátor náhodných čísel?

Na opísanie práce nepotrebujete veľa písmen, všetko je veľmi jednoduché: musíte vybrať minimálne a maximálne možné čísla, zadať počet vygenerovaných hodnôt, v prípade potreby zaškrtnúť políčko „Vylúčiť opakovania“, ktoré zabráni vzhľad čísel, ktoré už existujú, a kliknite na tlačidlo generovať. Potom každé ďalšie kliknutie na tlačidlo vytvorí nové možnosti distribúcie.

Prečo by to mohlo byť potrebné? Napríklad získať šťastné čísla v lotérii alebo rulete. Okrem toho je generátor pseudonáhodných čísel schopný napodobniť loto sudy alebo hádzanie mincou pre súťaž - hlavy a chvosty sú reprezentované nulou alebo jednotkou. Hlavné ale je, že po načítaní stránky nepotrebujete internetové pripojenie – kód je napísaný v JavaScripte a spúšťaný na strane používateľa, v jeho prehliadači.

Testovanie fungovania tohto online generátor niekedy dávali veľmi zaujímavé výsledky: pri použití čísel 0 a 1 s 10 možnosťami sa zriedkavo vytvorilo rozdelenie v pomere 7 ku 3 alebo dokonca 6 rovnakých čísel v rade.

Na čo iné, okrem lotto a vyššie uvedených príkladov, môže byť náhoda užitočná na distribúciu čísel? Aspoň na hádanie. Pravdepodobne ste túto hru hrali v detstve: hostiteľ uhádne číslo od 1 do 100 a ostatní sa ho snažia uhádnuť. Vo vzťahu k tomuto generátoru vystupujete ako vodca a počítač sa snaží uhádnuť, čo sa skrýva.

Môžete dokonca hrať Námorná bitka, okamžite dostane skupinu čísel v rozsahu od 0 do 99. V tomto prípade sa najvýznamnejšia číslica čísla použije ako písmená (ktoré sú označené vodorovne) - 0 ... 9 je ... a nízke číslice v tomto prípade nahradia rozsah 1 ... 10, potom sa pridá len jedna. Možno sa teraz tento prístup nezdá veľmi jasný, ale je to vec zvyku.

Ďalší zaujímavým spôsobom použite - skontrolujte svoju intuíciu. Pokúsite sa predpovedať, ktoré čísla (jedno po druhom alebo v skupine) generátor vygeneruje, stlačte tlačidlo a skontrolujte, ako blízko ste boli k správnemu výsledku. Kto vie, možno po niekoľkých pokusoch budete môcť presne predpovedať výsledok?

Treba však vziať do úvahy, že generátor náhodných čísel sa tak volá z nejakého dôvodu. Existujúce metódy dnes nie sú schopné poskytnúť skutočne náhodnú hodnotu – závisí to od mnohých faktorov, medzi ktoré môže patriť predchádzajúce číslo, aktuálny čas, obsah konkrétnej pamäťovej bunky a ďalšie údaje. Ale pre domáce potreby ich funkčnosť zvyčajne 100% postačuje.

No dúfam, že pre generátor nájdete rozsiahlejšie využitie, ako sú tu popísané možnosti. A možno môžete aj navrhnúť dobrý nápad na rozšírenie existujúcej funkčnosti. Nakoniec to boli tie najneuveriteľnejšie myšlienky, ktoré sa nakoniec zmenili z nejasnej predstavy na skutočné stelesnenie.



Podobné články