Kaip gali visiškai logiška mašina kaip kompiuterio generuoti atsitiktinių skaičių?
Yra du būdai, kad kompiuteriai gali generuoti atsitiktinius numerius: Rīga,
Galite sukurti keletą įrenginio rūšiuoti, kuri stebi visiškai atsitiktinai stichinių ir siunčia savo rezultatus į kompiuterį. Pavyzdžiui, galite įdėti radioaktyviųjų medžiagų gabalas priešais Geiger skaitiklis ir prijungti skaitiklio prie kompiuterio. Nuo radioaktyvaus skilimo yra atsitiktinis, Geigerio skaitiklis būtų sukurti tikrai atsitiktinius numerius. Šis metodas yra gana retas, nes ne daugelis žmonių turi Geigerio skaitikliai prijungti prie savo mašinos. Galite sukurti formulę, kuri generuoja pseudo atsitiktinių skaičių. Kurdami šią formulę, idėja yra, kad ji gamina skaičių seką, kad atrodytų atsitiktinai visiems, kurie nežinojo, ką formulė yra. Charakteristikos gera formulė yra:
Štai paprastas atsitiktinių skaičių formulė nuo pavyzdys. knyga " C programavimo kalba, " iki Kernighan ir Ritchie: Rīga,
int randas () {random_seed = random_seed * 1103515245 12345; grąža (nepasirašytas INT) (random_seed /65536)% 32768; }Ši formulė įgauna kintamojo vadinamas random_seed, kuris iš pradžių nustatytą tam tikru numeriu egzistavimą. Random_seed kintamasis yra dauginama iš 1,103,515,245 ir tada 12,345 bus pridėta prie gaminio; random_seed tada pakeisti šia nauja verte. Tai tikrai gana geras pseudo atsitiktinių skaičių generatorius. Jis turi gerą pasiskirstymą ir ji yra nesikartojančio. Jei jūs jį naudoti gaminti atsitiktinius skaičius tarp 0 ir 9, čia yra pirmieji 20 vertės, kad ji gamina, jei sėklos yra 10:
44607423505664567674Jei turite jį gamina 10.000 reikšmes nuo 0 iki 9, čia paskirstymas: Rīga,
0 - 10151-10242 - 10483-9964 - 9885-10016 - 9967-10068 - 9659-961Bet pseudo atsitiktinių skaičių formulė priklauso nuo sėklų vertę pradėti seka. Jei pradedate su tuo pačiu sėklos, gausite tą pačią seką vertybių pagal formulę. Taigi, jei jūs suteikiate randas () funkcija, parodytą paveikslėlyj
Page [1] [2]