Generátor pseudonáhodných čísel: Porovnání verzí
Smazaný obsah Přidaný obsah
Bez shrnutí editace |
Oprava chyb |
||
Řádek 10:
== Periodicita ==
Generátor pseudonáhodných čísel
{{Překlad|jazyk=en |článek=Pseudorandom number generator |revize=574204384}}<br>▼
▲Generátor pseudonáhodných čísel začíná z jakéhokoliv výchozího stavu použitím [[random seed]] (náhodné číslo - počáteční stav). Poté vždy vyprodukuje stejnou sekvenci čísel, pokud je inicializován se stejným počátečním stavem. Perioda generátoru pseudonáhodných čísel je definována jako maximum nad všemi počátečními stavy délky neopakující se sekvence. Perioda je omezena velikostí stavu měřeného v bitech. Nicméně od té doby, co se délka periody potencionálně zdvojnásobuje s každým stavovým bitem je snadné vytvořit generátor pseudonáhodných čísel s periodou dostatečně dlouhou pro praktické aplikace.
Pokud vnitřní stav generátoru pseudonáhodných čísel obsahuje ''n'' bitů, pak jeho perioda nemůže být delší než 2<sup>n</sup> výsledných stavů, ale může být mnohem kratší. Pro některé generátory je možné délku periody vypočítat bez procházení skrze celou periodu. [[Linear feedback shift register|Linear Feedback Shift Registers]] jsou obvykle voleny s periodou 2<sup>n</sup>-1.[[Linear congruential generator|Linear congruential generators]] mají periodu, která může být vypočítána faktorizací. Přestože generátor pseudonáhodných čísel bude opakovat výsledky
Většina algoritmů pseudonáhodných generátorů produkuje sekvenci s rovnoměrným rozdělením.
== Problémy s deterministickými generátory ==
V praxi výstup z mnoha běžných generátorů pseudonáhodných čísel vykazuje [[:en:Artifact (error)|anomálii]], která způsobuje jejich selhání při statistické detekci vzoru.
Například:
Řádek 31 ⟶ 29:
== Rané způsoby ==
Raný, počítačově založený generátor pseudonáhodných čísel, navržen [[John von Neumann|Johnem von Neumannem]] roku 1946, je znám pod názvem [[Middle-square method]]. Algoritmus funguje takto: vezmi jakékoliv číslo, umocni ho nadruhou, vezmi prostřední číslice výsledného čísla jako "náhodné číslo", poté použij číslo jako výchozí stav pro generátor. Například: umocníme číslo "1111",získáme "1234321", které může být zapsáno jako "01234321", čili osmiciferné číslo, které je druhou mocninou čtyřciferného čísla. Vezmeme střední cifry, což je "2343", tedy máme "náhodné" číslo. Opakováním této procedury získáme "4896" jako další výsledek atd. Von Neumann používal deseticiferná čísla, ale proces byl totožný.
Problém s touto metodou je ten, že všechny sekvence se nakonec opakují. Některé se opakuji velmi rychle, například: "0000". Von Neumann se obával, že by matematické úpravy pouze chyby schovaly a neodstranily je, avšak našel způsob dostatečný pro jeho úmysly.
Von Neumann usoudil, že převést do hardwaru generátor pseudonáhodných čísel je nemístné, protože
Od té doby byla [[Middle-square method]] nahrazena více komplikovanými generátory.
Řádek 42 ⟶ 39:
== Odkazy ==
=== Reference ===
<references />
|