Я хочу визначити ємність таблиці, щоб вона мала залишкові шанси менше для переповнення для заданого , припускаючи, що кількість записів відповідає закону Пуассона із заданим тривалість . 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]?