Я хочу визначити ємність таблиці, щоб вона мала залишкові шанси менше для переповнення для заданого , припускаючи, що кількість записів відповідає закону Пуассона із заданим тривалість . p ∈ [ 40 … 120 ] E ∈ [ 10 3 … 10 12 ]
В ідеалі я хочу, щоб найнижче ціле число було C
таким, що 1-CDF[PoissonDistribution[E],C] < 2^-p
для заданих p
і E
; але я задоволений деякими C
дещо вищими за це. Mathematica прекрасно підходить для ручного обчислення, але я хотів би обчислити C
з p
і E
під час компіляції, що обмежує мене в 64-бітному цілочисельний арифметики.
Оновлення: у Mathematica (версія 7) e = 1000; p = 40; c = Quantile[PoissonDistribution[e], 1 - 2^-p]
є 1231
і, здається, правильно (спасибі @Procrastinator); однак результат і для того p = 50
і p = 60
є 1250
, що неправильно з боку небезпеки (і важливо: мій експеримент повторюється як разів і більше, і я хочу, мабуть, менше ніж шансів на невдачу). Я хочу певного, але безпечного наближення, використовуючи лише 64-бітну цілу арифметику , як це доступно в C (++) під час компіляції. 2 - 30
p
, а також питання точності, і імена E
і C
які зарезервовані). Але мені потрібно просте наближення цього, можливо, сирого (але з безпечної сторони), використовуючи лише 64-бітну цілу арифметику!
C = Quantile[PoissonDistribution[E],1-2^p]
?