Kako lahko povsem logično stroj kot računalnik ustvari naključno številko?
Obstaja dva načina, da lahko računalniki generirajo naključne številke:
Lahko ustvarjajo nekakšno napravo, ki spremlja povsem naključno naravni dogodek in pošilja rezultate na računalnik. Na primer, lahko postavite kos radioaktivnega materiala pred Geiger števec in priključite Geiger števec z računalnikom. Ker radioaktivni razpad je naključno, bi Geiger števec ustvariti resnično naključnih števil. Ta pristop je zelo redek, ker ni veliko ljudi Geiger števci, priključene na svojih strojih. Lahko ustvarite formulo, ki generira psevdo-naključno število. Pri oblikovanju formule, ideja je za to, da ustvari niz številk, ki bi videti naključno za vsakogar, ki ni vedel, kaj je formula. Značilnosti dobre formule vključujejo:
Tukaj je primer preprostega naključnih števil formulo iz. knjiga " C Programski jezik, " ga Kernighan in Ritchie:
int rand () {random_seed = random_seed * 1103515245 12345; donosnost (unsigned int) (random_seed /65536)% 32768; }Ta formula predpostavlja obstoj spremenljivko z imenom random_seed, ki je v začetku nastavljena na neko številko. Random_seed spremenljivka se pomnoži s 1,103,515,245 in nato 12.345 gets dodane proizvodu; random_seed se nato jo nadomestiti s to novo vrednost. To je pravzaprav zelo dobra psevdo-naključno število generator. Ima dobro porazdelitev in je ne ponavlja. Če jo boste uporabili za izdelavo naključnih števil med 0 in 9, tukaj so prvih 20 vrednosti, ki jih proizvaja, če je seme 10:
Če imate proizvajajo 10.000 vrednosti med 0 in 9,
44607423505664567674 tukaj je porazdelitev:
0 - 10151-10242 - 10483-9964 - 9885-10016 - 9967-10068 - 9659-961Vsak psevdo-naključno število formule je odvisna od vrednosti semen za začetek zaporedja. Če začnete z istim semenom, boste dobili enako zaporedje vrednosti iz formule. Torej, če daš funkcijo rand () prikazano nad semena 10 na enem računalniku in pogled na tok številk, ki jih proizva
Page [1] [2]