📅  最后修改于: 2023-12-03 15:33:16.158000             🧑  作者: Mango
这个主题是在计算概率中比较基础的一个问题,需要求出在投掷n次硬币,至少获得k个正面的概率。
要解决这个问题,我们可以使用二项式分布来计算。二项式分布是一种概率分布,用于描述在n次独立重复试验中成功的次数的概率分布。
我们可以使用下面的公式来计算二项式分布:
其中,x 是指成功的次数,p 是单次成功的概率。
在我们的问题中,单次成功的概率是0.5,因为硬币的正反两面出现的概率应该是相等的。所以我们可以使用上面的公式来计算至少获得k个正面的概率。
我们可以写一个简单的Python函数来计算这个概率:
from math import comb
def probability_of_at_least_k_heads(n: int, k: int) -> float:
p = 0.5 # 单次成功的概率
q = 1 - p # 单次失败的概率
probability = 0
for i in range(k, n + 1):
probability += comb(n, i) * p ** i * q ** (n - i)
return probability
这个函数使用了Python中的math库中的comb函数来计算组合数。
我们可以使用上面的函数来计算在投掷10次硬币时,至少获得5个正面的概率是多少:
>>> probability_of_at_least_k_heads(10, 5)
0.623046875
这个结果意味着,投掷10次硬币,至少获得5个正面的概率是0.623,大约是61.3%。