给定:三个正整数2,2和,2代表一个包含生物体的种群:个体是纯合的显性因子,是杂合的,是纯合的隐性因子。
回报:两个随机选择的交配有机体将产生一个具有显性等位基因的个体(从而显示显性表型)的概率。假设任意两个生物体都可以交配。
Sample Dataset
2 2 2
Sample Output
0.78333
说明
现在给三个整数 k , m , n 代表k + m + 个生物,k个是显性纯合, m个是显性杂合, n个是隐性纯合
返回的结果是:随机的亲本杂交,统计子代基因型显性的比例
python解决方案
from scipy.special import comb
def mendel_law(k, m, n):
s = k + m + n
rr = comb(n, 2) / comb(s, 2)
hh = comb(m, 2) / comb(s, 2)
hr = comb(n, 1) * comb(m, 1) / comb(s, 2)
probability = 1 - (rr + hh * 1 / 4 + hr * 1 / 2)
return probability
print("%.5f" % mendel_law(2, 2, 2))