Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

GENEROVÁNÍ PSEUDONÁHODNÝCH ČÍSEL

Podobné prezentace


Prezentace na téma: "GENEROVÁNÍ PSEUDONÁHODNÝCH ČÍSEL"— Transkript prezentace:

1 GENEROVÁNÍ PSEUDONÁHODNÝCH ČÍSEL
Princip generátoru náhodných, resp. pseudonáhodných čísel Všechny standardní procedury pseudonáhodného výběru používají jeden základní algoritmus generování náhodných čísel rovnoměrně rozložených na intervalu (0,1). Konstrukce algoritmu - při každém generování náhodného čísla se vychází z hodnoty celočíselné proměnné, kterou je součastně modifikována pro další použití. PC-Simula používá algoritmus, který mění hodnotu celočíselné proměnné U tak, že při každém volání vyčíslí výraz kde p a n jsou konstanty a touto hodnotou aktualizuje proměnnou U. Je-li počáteční hodnota U kladná a lichá, jsou kladné a liché i všechny její další hodnoty a posloupnost je periodická s periodou

2 Boolean procedure draw(a,U); name U; real a; integer U;
SIMULACE DISKRÉTNÍCH SYSTÉMŮ Jazyk SIMULA obsahuje standardně deset procedur pro generování různě statisticky rozložených pseudonáhodných čísel. Procedura draw Boolean procedure draw(a,U); name U; real a; integer U; Je-li hodnota parametru a větší než nula a menší než jedna, vydá procedura s pravděpodobností a hodnotu true a s pravděpodobností 1-a hodnotu false. Je-li hodnota parametru a větší nebo rovna jedné, vydá procedura hodnotu true, je-li hodnota nekladná, vydá procedura hodnotu false. Procedura randint integer procedure randint(a,b,U); integer a,b,U; Při volání vydá procedura náhodně vybrané celé číslo z intervalu <a,b>.

3 real procedure uniform(a,b,U); name U; real a,b; integer U;
SIMULACE DISKRÉTNÍCH SYSTÉMŮ Procedura uniform real procedure uniform(a,b,U); name U; real a,b; integer U; Při vyvolání je hodnotou procedury náhodné číslo z rovnoměrného rozložení na intervalu <a,b>. Procedura normal real procedure normal(a,b,U); Při vyvolání procedury vydá náhodně vybrané číslo z normálního rozdělení se střední hodnotou a a standardní odchylkou b.

4 real procedure negexp(a,U); name U; real a; integer U;
SIMULACE DISKRÉTNÍCH SYSTÉMŮ Procedura negexp real procedure negexp(a,U); name U; real a; integer U; Procedura vydá náhodné číslo z negativně exponenciálního rozdělení se střední hodnotou 1/a. Procedura poisson real procedure poisson(a,U); Procedura vydá náhodné číslo z Poissonova rozdělení s parametrem a.

5 real procedure erlang(a,b,U); name U; real a,b; integer U;
SIMULACE DISKRÉTNÍCH SYSTÉMŮ Procedura erlang real procedure erlang(a,b,U); name U; real a,b; integer U; Procedura vydá náhodné číslo z Erlangova rozdělení se střední hodnotou 1/a a standardní odchylkou 1/(a√b). Procedura discrete integer procedure discrete(a,U); real array a; integer U; Procedura předpokládá, že reálné pole použité jako parametr a je jednorozměrné a hodnotami v intervalu <0,1> a jeho hodnoty jsou neklesající se zmenšujícím se indexem.Potom toto pole chápe jako zadání diskrétní distribuční funkce, jejímž argumentem je index i a funkčními hodnotami a[i].Funkční hodnotou je pak náhodné číslo ze statistického rozdělení, které je dáno touto distribuční funkcí.

6 real procedure linear (a,b,U); name U; real array a,b; integer U;
SIMULACE DISKRÉTNÍCH SYSTÉMŮ Procedura linear real procedure linear (a,b,U); name U; real array a,b; integer U; Při volání procedury se o parametrech a a b předpokládá, že jsou to jednorozměrné pole se stejnými mezerami, jejichž hodnoty jsou neklesající se zvětšujícím se indexem. O parametru a se dále předpokládá, je první položka je rovna nule a poslední položka rovna jedné. Procedura potom chápe toto pole jako základní lineárně interpolované distribuční funkce F, pro kterou platí F(b[i]) = a[i] a výsledkem procedury je náhodné číslo se statistického rozdělení daného touto distribuční funkcí.

7 integer procedure histd(a,U); name U; real array a; integer U;
SIMULACE DISKRÉTNÍCH SYSTÉMŮ Procedura histd integer procedure histd(a,U); name U; real array a; integer U; Procedura předpokládá, že parametr a je jednorozměrné pole, o hodnotách tohoto pole se předpokládá, že jejich součet je roven jedné. Funkční hodnota procedury pak leží uvnitř intervalu určeného mezemi pole a – hodnotu i vydá procedura s pravděpodobností a[i].


Stáhnout ppt "GENEROVÁNÍ PSEUDONÁHODNÝCH ČÍSEL"

Podobné prezentace


Reklamy Google