二项式分布计算

Binomial Distribution Calculation

我有 n 台服务器,我想知道我需要多少台服务器才能使至少 10 台服务器处于活动状态的概率为 0.99。服务器发生故障的概率等于 0.01.

到目前为止,我知道我至少需要 10 台服务器才能处于活动状态。所以概率是:

sum (from k = 10 to n) of (n choose k)*(0.99 ^ k)*(0.01^(n-k)) = 0.99

而且我必须对从 10 到 n 的每个 n 执行此操作。我想知道有没有更短的方法?就像如果我做了 9 台服务器失败的概率,我做了一个减去这个概率,就像这样:

1 - (n choose 9)*(0.01^9)*(0.99^(n-9)) = 0.99

这会给我正确答案吗?请帮助:)

更新,我用在线计算器求解了后一个方程(1 - 恰好 9 个失败的概率),我得到了可用于使至少 10 个服务器失败的概率的最大服务器数大于 0.99 的活动将是 380 个服务器,任何多于此将导致至少 10 个服务器处于活动状态的概率小于 0.99。

不过我不确定这是否正确。 :)

由于您希望在 n 次试验中至少成功 X=10 次,因此每次试验成功 p=0.99, 您可以考虑共轭并在 (P(X<=9|n=N,p=0.99) < 0.01).

中计算出 n

这部分你可以使用二项式 cdf

在你的情况下它变成了

现在我们要算出需要多少次试验n才能使上述cdf的评价小于0.01

例如,您可以使用 python 进行数字搜索:

from scipy.stats import binom
for n in range(1000):
    p = binom.cdf(9, n, 0.99)
    if p < 0.01:
        print(n)
        break

并且您会看到需要不超过 11 台服务器才能确保至少有 10 台服务器处于活动状态的概率为 0.99:-)