📅  最后修改于: 2023-12-03 15:24:58.289000             🧑  作者: Mango
本程序是用来计算抛一枚硬币n次后出现m个正面的概率。
coin_probability(num, heads)
其中,num为抛硬币的次数,heads为正面朝上的次数。
函数将返回一个float类型的结果,表示出现m个正面的概率。结果保留了4位小数。
如果想要计算一枚硬币被抛7次后出现6个正面的概率,可以这样调用该函数:
result = coin_probability(7, 6)
print(result)
则输出结果为:
0.0156
本程序基于二项分布的公式实现。以下是源代码片段:
from math import factorial as fact
def coin_probability(num, heads):
p = 0.5 # 正面朝上的概率
q = 1 - p # 反面朝上的概率
if heads > num:
return 0.0
else:
return round((fact(num) / (fact(heads) * fact(num - heads))) * (p ** heads) * (q ** (num - heads)), 4)
具体计算公式为:
$$ P(X=k)=C_{n}^{k}\cdot p^{k}\cdot q^{n-k} $$
其中,$P(X=k)$表示在$n$次投掷中出现$k$次正面的概率,$C_{n}^{k}$表示$n$个不同元素中选择$k$个元素的组合数,$p$表示一个硬币正面朝上的概率,$q=1-p$表示反面朝上的概率。