Avatar uživatele
Registrovaný

Proč náhodné číslo není náhodné?

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?

Uzamčená otázka – ohodnoťte nejlepší odpověď symbolem palce.

Nejlepší odpověď

Avatar uživatele
Zlatý

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.

 

Další odpovědi:

Avatar uživatele
Zlatý

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.


Avatar uživatele
Zlatý

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.


Avatar uživatele
Pokročilý

To by chtělo spíš nějakého matematiko programátora ...

 

Diskuze k otázce

 

U otázky nebylo diskutováno.

 

Přihlásit se

Položte otázku, odpovězte, zapojte se, …

začněte zde

Reklama

Kvalitní odpovědi v: Počítače a internet

Zlatý Bedy 1525
Zlatý Michal Kole 1198
Zlatý mosoj 1028
Zlatý Hlada 949
Zlatý ge0rge 894
Zlatý www 829
Zlatý led 819
Zlatý badisko 818
Zlatý gecco 795
Zlatý arygnoc 674

Zobrazit celkový žebříček

Facebook

 

Váš požadavek se vyřizuje, počkejte prosím.