Ako môže úplne logicky stroj ako počítač vygenerovať náhodné číslo?
Existujú dva spôsoby, ako počítače môžu generovanie náhodných čísel:
Môžete si vytvoriť nejaký zariadenie, ktoré sleduje úplne náhodný prírodné udalosti a odošle jeho výsledky k počítaču. Napríklad, môžete umiestniť kus rádioaktívneho materiálu v prednej časti Geigerove počítač a pripojte Geigerove počítač k počítaču. Vzhľadom k tomu, rádioaktívny rozpad je náhodný, Geiger by vytvoriť skutočne náhodných čísel. Tento prístup je veľmi vzácne, pretože nie veľa ľudí má Geigerove počítač pripojené k svojim strojom. Môžete vytvoriť vzorec, ktorý generuje pseudonáhodné číslo. Pri navrhovaní vzorec, myšlienka je pre to, aby produkovať reťazec čísel, ktorá bude vyzerať náhodne pre každého, kto nevie, čo je vzorec. Charakteristika dobrého vzorca patria:
Tu je príklad jednoduchého náhodných čísel vzorca z. kniha " Programovací jazyk C, " od Kernighan a Ritchie:
int rand () {random_seed = random_seed * 1103515245 12345; return (unsigned int) (random_seed /65536) 32768%; }Tento vzorec predpokladá existenciu premennej nazvanej random_seed, ktorý je na začiatku nastavený na nejaké číslo. Random_seed premenná sa vynásobí 1,103,515,245 a potom 12345 dostane pridá k produktu; random_seed potom je nahradená touto novou hodnotou. To je vlastne celkom dobrý pseudo-generátor náhodných čísel. Má dobré rozloženie, a to je non-opakovanie. Ak ho použiť na výrobu náhodných čísel medzi 0 a 9, tu sú prvých 20 hodnôt, ktoré je produkuje v prípade, že semeno je 10:
44607423505664567674Ak máte produkovať 10.000 hodnôt medzi 0 a 9, tu je distribúcia:
0 - 10151 - 10242 - 10483 - 9964 - 9885 až 10016 - 9967 - 10068 - 9659 - 961Každá pseudo-náhodné číslo formula závisí na hodnote semien pre spustenie sekvencie. Ak máte začať s rovnakou osivo, dostanete rovnaký sled hodnôt zo vzorca. Takže ak dáte funkcie rand () zobrazený hore semena 10 na jednom počítači a pozrieť sa na prúd čís
Page [1] [2]