1 / 7

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

GENEROVÁNÍ PSEUDONÁHODNÝCH ČÍSEL. Princip generátoru náhodných, resp. pseudonáhodných čísel

steffi
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 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; reala; integer U; Je-li hodnota parametru avě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 avětší nebo rovna jedné, vydá procedura hodnotu true, je-li hodnota nekladná, vydá procedura hodnotu false. Procedura randint integer procedure randint(a,b,U); name U; integer a,b,U; Při volání vydá procedura náhodně vybrané celé číslo z intervalu <a,b>.

  3. 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); name U; real a,b; integer 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. 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); name U; real a; integer U; Procedura vydá náhodné číslo z Poissonova rozdělení s parametrem a.

  5. 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); name 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. 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. 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].

More Related