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 začínáje znastaven do 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.
{{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, poté, co dosáhne konce periody, opakovaný výsledek nezaručuje dosažení konce periody, poněvadž jeho vnitřní stav může být větší než výsledný. To je zřejmé zejména u generátoru pseudonáhodných čísel s 1bitovým výstupem.
 
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 ==
{{Překlad|jazyk=en |článek=Pseudorandom number generator |revize=574204384}}<br>
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 ==
{{Překlad|jazyk=en |článek=Pseudorandom number generator |revize=574204384}}<br>
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 nemohli bychom nemohli zaznamenávat generovaný výstup, a nemohli bychom později testovat chyby. Pokud by v té době zaznamenávali výsledné hodnoty, vyčerpali by tak paměť počítače a ten by pak nadále nebyl schopen číst a zapisovat čísla. Jestliže by byly čísla "vděrovány" do štítků, trvalo by čtení a psaní pro tehdejší počítače velmi dlouho. Na počítači [[ENIAC]], který Von Neumann používal, byla [[Middle-square method]] generující čísla zhruba stokrát rychlejší než načítáníčtení z [[Děrný štítek|děrných štítků]].
 
Od té doby byla [[Middle-square method]] nahrazena více komplikovanými generátory.
Řádek 42 ⟶ 39:
== Odkazy ==
=== Reference ===
{{Překlad|jazyk=en |článek=Pseudorandom number generator |revize=574204384}}<br>
<references />