📅  最后修改于: 2023-12-03 14:53:22.070000             🧑  作者: Mango
这是一个简单的计算概率的程序,可以用来计算出现指定数量正面的概率。本文以“如果一枚硬币被抛 8 次,那么出现 4 个正面的概率是多少?”为例进行说明。
这个程序需要用到组合数公式:
C(n, m) = n! / (m! * (n-m)!)
其中,n 代表事件总数,m 代表期望事件数。
计算出现 4 个正面的概率,即:
C(8,4) * 0.5^4 * 0.5^4 = 70/256 = 0.2734
即,抛 8 次硬币,出现 4 个正面的概率是 0.2734 (约为 27.34%)。
代码如下:
def calc_prob(n: int, m: int, p: float) -> float:
"""计算出现 m 次的概率"""
c = factorial(n) / (factorial(m) * factorial(n - m))
return c * p ** m * (1 - p) ** (n - m)
print(f'抛 8 次硬币,出现 4 个正面的概率是:{calc_prob(8, 4, 0.5)}')
结果输出:
抛 8 次硬币,出现 4 个正面的概率是:0.2734375
本程序基于组合数公式计算出概率,可以用于许多计算概率的问题。