Generatory liczb losowych

background image

Generatory liczb losowych

Po co nam liczby losowe?

– symulacje (jeżeli używamy komputera to potrzebujemy liczb losowych by badane zjawisko urealnić)

np. fizyka jądrowa (losowe zdarzenia cząstek) czy badania operacyjne (np. problemy optymalizacji –

przydział kanału w sieciach komórkowych)

– próbkowanie – wybór przypadków z dużej ilości danych

– analiza numeryczna

– programowanie – np. badanie efektywności algorytmów,

– podejmowanie decyzji – czasami zdajemy się tu na „ślepy los” np. inwestycja giełdowa

– rozrywka – gry komputerowe, gry losowe (rosyjska ruletka)

Jak można generować liczby losowe – z nieinformatycznej perspektywy

„Prawdziwie” losowym generatorem jest rozpad atomowy cząstek. Zachodzi on w losowych chwilach

czasu, a jego zajście można zarejestrować licznikiem Geigera-Millera. W Internecie można znaleźć

realizacje zmiennej losowej pobrane w ten sposób, a nawet istnieje strona na której dane takie

można zamówić

www.fourmilab.ch/hotbits

.

Można również uzyskać liczby losowe analizując zjawiska zachodzące wewnątrz zwykłego komputera

np. turbulencje powietrza wywołane pracą dysku twardego, szum termiczny w półprzewodnikach itp.

Generowanie liczb losowych

Najczęściej

stosowanymi

w

zagadnieniach

inżynierskich

generatorami

generatory

deterministyczne, pseudolosowe. Wyjściem takiego generatora jest sekwencja liczb która ma

charakter losowy, jednak liczba otrzymywana jako i-ta zależy w pewien sposób od k liczb poprzednich

tj. x

i

=f(x

i-k

, x

i-k+1

, ..., x

i-1

). Parametr k to tzw. rząd generatora.

Podstawowym generatorem tego typu jest generator liniowy. Najczęściej stosuje się tzw. generator

liniowy kongruencyjny.

Kongruencja to relacja określona w zbiorze liczb całkowitych. Kongruencja modulo n nazywana jest

też przystawaniem liczb "modulo n".

background image

Liczby całkowite a i b przystają modulo n (pozostają w kongruencji modulo n), co zapisuje się:

a

- [czasami oznacza się bez nawiasu] jeżeli ich różnica ab dzieli się bez reszty przez n.

Równoważnie: jeśli liczby a i b dają w dzieleniu przez n tę samą resztę.

Generator liniowy kongruencyjny generuje ciąg (tzw. ciąg Lehmera) :

,

mod

)

(

1

m

c

x

a

x

i

i

+

=

gdzie:

m

x

i

<

0

stan początkowy generatora x

0

to tzw. ziarno (seed). Pozostałe parametry specyfikują konfigurację

generatora. Jeśli c=0 to mamy do czynienia z tzw. generatorem multiplikatywnym.

Z generatora multiplikatywnego otrzymujemy liczby z przedziału (0, m), często zatem dokonujemy

przeskalowania (u

i

= x

i

/ m) by uzyskać liczby losowe z przedziału (0,1).

Jak generować liczby z innych rozkładów niż jednostajny?

Podstawowym sposobem rozwiązania powyższego problemu są rozmaite transformacje. Na przykład

by uzyskać liczby o rozkładzie normalnym stosować można transformację Boxa-Mullera. Gdy U

1

i U

2

są dwiema zmiennymi losowymi o rozkładach normalnych to w wyniku tejże transformacji:

2 ln

cos2

2 ln

sin2

otrzymuje się dwie niezależne zmienne losowe Z

1

i Z

2

o rozkładzie normalnym.


Wyszukiwarka

Podobne podstrony:
Zainicjowanie generatora liczb losowych
tablica liczb losowych
14 BO 2 1 PP Generowanie Liczb Losowych 2008 s p [v9]
14 BO 2 1 PP Generowanie Liczb Losowych 2008 s p [v9]
generator liczb chybił trafił
14 BO 2 1 PP Generowanie Liczb Losowych 2008 s p [v9]
Generowanie liczb losowych
10 Reprezentacja liczb w systemie komputerowymid 11082 ppt
15 Sieć Następnej Generacjiid 16074 ppt
Solid Edge Generator kół zębatych
37 Generatory Energii Płynu ppt
40 0610 013 05 01 7 General arrangement
md elementy teorii liczb
Eksploatowanie częstościomierzy, generatorów pomiarowych, mostków i mierników RLC
Konspekt; odejmowanie liczb wymiernych
Biomass Fired Superheater for more Efficient Electr Generation From WasteIncinerationPlants025bm 422
Instrukcja generator sinusoidalny

więcej podobnych podstron