[java] losowanie z rozkladem wykladniczym

adeptofvoltron
Użytkownik
Użytkownik
Posty: 113
Rejestracja: 4 paź 2006, o 19:50
Płeć: Mężczyzna
Lokalizacja: z nienacka
Podziękował: 15 razy
Pomógł: 5 razy

[java] losowanie z rozkladem wykladniczym

Post autor: adeptofvoltron »

tak jak w temacie. nie wiem czemu ten ktory napisałem zwraca mi jakies zle wyniki. moze istnieje juz taka funkcja w jakiejś bibliotece. z gory dzieki za pomoc.
Awatar użytkownika
kuch2r
Użytkownik
Użytkownik
Posty: 2302
Rejestracja: 18 paź 2004, o 18:27
Płeć: Mężczyzna
Lokalizacja: Wrocław/Ruda Śląska
Podziękował: 9 razy
Pomógł: 408 razy

[java] losowanie z rozkladem wykladniczym

Post autor: kuch2r »

a możesz zamieścić kod programu ?
adeptofvoltron
Użytkownik
Użytkownik
Posty: 113
Rejestracja: 4 paź 2006, o 19:50
Płeć: Mężczyzna
Lokalizacja: z nienacka
Podziękował: 15 razy
Pomógł: 5 razy

[java] losowanie z rozkladem wykladniczym

Post autor: adeptofvoltron »

samo losowanie to kilka linijek.
nic wielkiego. opierajace sie na gestosci rozkladu lamba*exp(-lambda*x)

gdzie x losuje zwyklym randomem
Awatar użytkownika
kuch2r
Użytkownik
Użytkownik
Posty: 2302
Rejestracja: 18 paź 2004, o 18:27
Płeć: Mężczyzna
Lokalizacja: Wrocław/Ruda Śląska
Podziękował: 9 razy
Pomógł: 408 razy

[java] losowanie z rozkladem wykladniczym

Post autor: kuch2r »

z tego co się orientuję w temacie, to generujemy rozkład na podstawie dystrybuanty rozkładu.
Jeśli chcemy otrzymać liczby z rozkładu wykładniczego, wówczas jeśli istnieje taka możliwość to znajdujemy funkcję odwrotną do dystrubuanty naszego rozkładu. A następnie podstawiamy kolejne wartości, które otrzymaliśmy przy pomocy losowania "random".
MGT
Użytkownik
Użytkownik
Posty: 107
Rejestracja: 7 lis 2006, o 12:03
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Pomógł: 20 razy

[java] losowanie z rozkladem wykladniczym

Post autor: MGT »

Polecam metodę ROU (łatwa w implementacji).


1. Generujesz (rozkładem równomiernym)

\(\displaystyle{ A \in\ <0\ ;\ 1>\ \wedge\ B \in\ <0\ ;\ 2/e>}\)

2. Jeśli

\(\displaystyle{ B/A\ > -2\ln{A}}\)

to wróć do 1. W przeciwnym przypadku zwróć B/A.
ODPOWIEDZ