def calculate_probability(k, N):
total_organisms = 2 ** k # 第k代有机体的总数
p_AaBb = 0.25 # Aa Bb基因型的概率
# 计算至少N个Aa Bb基因型有机体的概率
probability = 0
for i in range(N, total_organisms + 1):
probability += binomial_coefficient(total_organisms, i) * (p_AaBb ** i) * ((1 - p_AaBb) ** (total_organisms - i))
probability = round(probability,3)
return probability
def binomial_coefficient(n, k):
if k > n - k:
k = n - k
result = 1
for i in range(k):
result *= (n - i)
result //= (i + 1)
return result
# 输入k和N的值
k = int(input("请输入k的值(k ≤ 7):"))
N = int(input("请输入N的值(N ≤ 2^k):"))
# 计算概率并打印结果
probability = calculate_probability(k, N)
print("在第{}代中至少有{}个Aa Bb基因型的概率为:{}".format(k, N, probability))
rosalind Independent Alleles
发布于 2024-03-10 3 次阅读
Comments NOTHING