Myślę, że należy ponownie przemyśleć swoje pytanie. Poisson jest rozkładem liczenia określanym w kategoriach stopy, np. Ile wystąpień czegoś widzę średnio w danym okresie. Daje dodatnie liczby całkowite, więc wynik nie może znajdować się w zakresie [0,1]. Czy możesz wyjaśnić, czego chcesz?
Niezależnie, w celu wygenerowania Poissona lambda wynosi jeden algorytm:
threshold = Math.exp(-lambda)
count = 0
product = 1.0
while (product *= rand) >= threshold {
count += 1
}
return count
gdzie "Rand" oznacza wywołanie funkcji dla jednolitego (0,1). Nie znam javascriptu, ale powinno to być wystarczająco proste, abyś mógł je wdrożyć.
Odpowiadając na edytowanej pytanie:
Istnieje kilka dystrybucje, które generują wyniki na ograniczonym zakresie, ale wiele z nich nie jest dla osób o słabym sercu, takich jak rodzina Johnsona lub dystrybucji Beta.
Łatwo można podzielić na trójkąty. Sqrt (rand) da rozkład trójkąta skupiony w kierunku 1, natomiast (1-Sqrt (1-rand)) da rozkład trójkąta skupiony w kierunku zera.
Bardziej ogólnie trójkąt z trybem (najczęściej value) przy m (gdzie 0 < = M < = 1) mogą być wytwarzane z
if rand <= m
return m * Sqrt(rand)
else
return 1 - ((1 - m) * Sqrt(1 - rand))
Należy zauważyć, że każde powołanie się na Rand oddzielny równomiernego rozkładu numer, to nie będzie poprawne, jeśli wygenerujesz jedną wartość dla rand i użyjesz go przez cały czas.
Per poniżej odpowiedź, Poissona nie są [0,1]. Są to [0, nieskończoność]. Więc czego chcesz? – djechlin
+1, jest to dobre pytanie z niebanalnym rozwiązaniem. – Nishanth
@djechlin technicznie Poissona zmienne losowe mają wsparcie ponad {0, ..., ∞}, to ma znaczenie dla myślenia o pobieranie próbek z procesów Poissona na przestrzeni generujących Poissona zmiennej losowej na podstawie stopy bazowej dystrybucji na [0, ∞) przestrzeń zwykle jest to brane pod uwagę w Procesach Poissona. Jeśli wziąć pod uwagę całość tej przestrzeni, masz Poissona losową zmienną liczbę zdarzeń ze średnią ∞, który tradycyjnie jest postrzegane jako ważny przypadku krawędzi, gdzie można oczekiwać Poissona zmienna losowa = ∞ (w.p. = 1). – mpacer