U několika programovacích jazyků se mluví o tzv. „pseudonáhodném“ číslu. Znamená to tedy, že když dám pomocí nějaké funkce random() vygenerovat číslo, tak není tak úplně náhodné? Otázka by spíš mohla znít – jak vnitřně v programovacích jazycích funguje generování náhodného čísla?
ohodnoťte nejlepší odpověď symbolem palce
Zajímavá 1Pro koho je otázka zajímavá? led před 4896 dny |
Sledovat
Nahlásit
|
pseudonáhodné číslo je číslo generované z tabulky, v kterém jsou
čísla uspořádáné podle nějakého náhodného algorytmu.
Při každém startu programu se generátor pseudonáhodných čísel nastaví
na 0, tudíž generuje za sebou ty samé postupnosti náhodných čísel.
Dá se tomu předejít tím, že se načte x čísel z tohoto generátoru (
i stovky, tisíce) před spuštěním programu (ale v jeho těle, jinak by se
zase nastavil na 0), ale pokaždé jinak (ošetřit např pomocí algorytmu,
v kterém bude figurovat čas), aby při každém spuštění programu
pseudogenerátor „startoval“ u jiného čísla.
0 Nominace Nahlásit |
Protože je nějakým způsobem vygenerováno. Zpravidla se to dělá tak,
že se vezme systémový čas, pronásobí se to nějakým velkým prvočíslem
a následně ještě dále upraví tak, aby to bylo číslo z nějakého
intervalu a s nějakým daným počtem desetinných míst.
Program si ty čísla nevymýšlí, ale generuje podle nějakého jasného,
předem definovaného, postupu, proto to není náhodné. Principy generování
jistě budou lépe vysvětleny někde na netu … Google, Wikipedia.
0 Nominace Nahlásit |
Ač se to může zdát neuvěřitelné, náhoda nemá v informatice místo. „Náhodná čísla“ jsou ve skutečnosti výsledky nějakého výpočtového algoritmu, takže při opakovaném výpočtu by byla i tato čísla opakovaně stejná. Jako prvek náhody, zajišťující to, aby nebyla, se nejčastěji používají hodiny (jako vstup do výpočtu se použije aktuální čas, takže při opakovaném spuštění jsou výsledky jiné). Popisuju to velmi laicky, generátory náhodných čísel jsou docela věda.
V aplikacích, kde na náhodnosti opravdu životně záleží, třeba v kryptografii, se používá např. hardware, které generuje číselné hodnoty třeba z rádiového šumu.
0 Nominace Nahlásit |
U otázky nebylo diskutováno.
Nový příspěvekBedy | 1528 | |
Michal Kole | 1199 | |
led | 1159 | |
Hlada | 1132 | |
mosoj | 1124 | |
gecco | 904 | |
www | 828 | |
badisko | 817 | |
cochee | 814 | |
Dochy | 727 |
Software |
Hardware |
Internet |
Programování a webdesign |
Sítě |
Bezpečnost |
Ostatní počítače a internet |