Generacja liczb losowych

Procesy stochastyczne. Sposoby racjonalizowania wielkich ilości informacji. Matematyka w naukach społecznych.
miodas007
Użytkownik
Użytkownik
Posty: 73
Rejestracja: 30 gru 2007, o 15:10
Płeć: Mężczyzna
Lokalizacja: Zarszyn
Podziękował: 9 razy

Generacja liczb losowych

Post autor: miodas007 »

Mam zrobić trzy generatorki. Dwa bezproblemowo zrobiłem: dla rozkładu eksponencjalnego (metodą odwracania dystrybuanty), dla normalnego (przemianą Boxa-Mullera). Natomiast mam problem z dwumianowym. Mam napisane o tym tyle:
Skoro rozkład ten reprezentuje ilość sukcesów w n eksperymentach z prawdopodobieństwem pojedynczego sukcesu p, wystarczy jedynie wygenerować ciąg n liczb losowych ~ 0,1 i wyznaczyć liczbę elementów x spełniających warunek x ≤ p. Liczba ta jest pojedynczym elementem nowej zmiennej losowej Y o rozkładzie dwumianowym.
Ale niestety nie bardzo rozumiem. Próbowałem i nie wychodzi (sprawdzam budując na podstawie liczb histogram).
Możecie mi trochę to rozjaśnić?
bstq
Użytkownik
Użytkownik
Posty: 319
Rejestracja: 7 lut 2008, o 12:45
Płeć: Mężczyzna
Lokalizacja: Warszawa
Pomógł: 67 razy

Generacja liczb losowych

Post autor: bstq »

Ja znalazłem coś takiego ogólnie dla rozkładu dwumianowego.
\(\displaystyle{ X\sim Bin(n,p)}\)
posługujemy się funkcją:
\(\displaystyle{ p_{k}= \sum_{i=0}^{k} {n \choose i} p^{i} \left( 1-p\right)^{n-i}\quad k=0,1,\ldots,n}\)


Algorytm:
0. wygeneruj \(\displaystyle{ u}\) z rozkładu jednostajnego \(\displaystyle{ \mathcal{U}(0,1)}\)
1. Połóż \(\displaystyle{ X=0}\)
2. Jeśli tylko (While) \(\displaystyle{ u>p_{X}}\) wykonaj: \(\displaystyle{ X=X+1}\)
3. zwróć \(\displaystyle{ X}\)


Innym sposobem:
Jeśli mamy rozkład dyskretny \(\displaystyle{ p_{k}=P(X=k)}\) na nośniku \(\displaystyle{ {0,1,2,\ldots}}\), to można generować:

1. Wygeneruj \(\displaystyle{ U_{1},U_{2},\ldots \sim \mathcal{U}(0,1)}\)
2. \(\displaystyle{ X_{n}=\undeset \left(k: U_{n} \le \sum_{i=0}^{k} p_{k}\right)}\)
ODPOWIEDZ