Chcę zdecydować o pojemności tabeli, aby miała ona szanse resztkowe mniejsze niż na przelanie dla danego , zakładając, że liczba wpisów jest zgodna z prawem Poissona z danym oczekiwana . p ∈ [ 40 … 120 ] E ∈ [ 10 3 … 10 12 ]
Idealnie chciałbym, aby najniższa liczba całkowita była C
taka, że 1-CDF[PoissonDistribution[E],C] < 2^-p
dla danego p
i E
; ale jestem zadowolony z niektórych C
nieco wyżej. Matematyka jest odpowiednia do obliczeń ręcznych, ale chciałbym obliczać C
od p
i E
w czasie kompilacji, co ogranicza mnie do 64-bitowej arytmetyki liczb całkowitych.
Aktualizacja: In Mathematica (wersja 7) e = 1000; p = 40; c = Quantile[PoissonDistribution[e], 1 - 2^-p]
jest 1231
i wydaje się mieć rację (dzięki @Prastrastinator); jednak wynik dla obu jest p = 50
i , co jest niewłaściwe po niebezpiecznej stronie (i ma znaczenie: mój eksperyment powtarza się 2 25 razy lub więcej i chcę wyraźnie mniej niż 2 - 30 ogólnych szans na porażkę). Chcę pewne przybliżone, ale bezpieczne przybliżenie przy użyciu tylko 64-bitowej arytmetyki liczb całkowitych , jak to jest dostępne w C (++) w czasie kompilacji.p = 60
1250
p
i problemów z precyzją oraz nazw E
i C
zastrzeżonych). ALE potrzebuję prostego przybliżenia tego, być może surowego (ale po bezpiecznej stronie), używając tylko 64-bitowej liczby całkowitej arytmetyki!
C = Quantile[PoissonDistribution[E],1-2^p]
?