📌  相关文章
📜  在 N 次抛硬币中获得至少 K 个正面的概率(1)

📅  最后修改于: 2023-12-03 15:07:44.691000             🧑  作者: Mango

计算抛硬币的正面概率

问题描述

在进行 N 次独立的抛硬币实验中,需要计算同时出现至少 K 次正面的概率。

解决此问题的常用方法是二项分布(Binomial Distribution)。

二项分布

二项分布为离散概率分布,用于描述在 n 次独立的是/非试验中成功次数 X 的概率分布,其中每次试验成功的概率为 p,失败的概率为 q = 1-p。

因此,在进行 N 次抛硬币情况下,抛到正面的概率为 p,抛到反面的概率为 q=1-p。如果进行 K 次正面,则用二项分布函数计算概率。

二项分布函数

二项分布实现在不同编程语言中可能不同,但在 Python 中,我们可以使用 SciPy 库中二项分布函数来计算问题的答案。

from scipy.stats import binom

def binomial_probability(n, p, k):
    '''
    计算 N 次实验中获得 k 次成功的概率
    :param n: 实验次数
    :param p: 单次实验成功的概率
    :param k: 成功的次数(大于等于k的所有情况概率和)
    :return: 成功k次概率
    '''
    return 1 - binom.cdf(k - 1, n, p) 

我们直接使用函数计算在进行 10 次抛硬币的情况下,获取至少 5 次正面的概率。

>>> n = 10
>>> p = 0.5
>>> k = 5
>>> binomial_probability(n, p, k)
0.623046875
总结

通过二项分布函数,我们可以方便地计算在 N 次独立实验中获得至少 K 次成功的概率。此函数的实现在不同编程语言中可能不同,但基本思路都是相似的。