vir*_*tor 5 algorithm probability rosalind
我正试图从rosalind项目中解决一个练习,但显然仍然犯了一些错误.全文可在此处获得,但我的简短抽象解释和尝试如下.请帮我找一下我做错了什么:
我们有3个团体项目:AA,Aa,aa.我们从1开始Aa并进行k生成新项目的迭代.在每次迭代中,组中的每个项目:
Aa可以产生:AA(25%),Aa(50%),aa(25%)AA可以产生:AA(50%),Aa(50%)aa可以产生:aa(50%),Aa(50%)作为迭代的结果,我们计算每个组的预期项目数,假设我们在上一次迭代中从每个项目生成2个新项目.所以我们最终得到:
AA0,Aa:1,aa:0AA.5,Aa:1,aa:.5AA1,Aa:2,aa:1每次迭代的预期值/总体的总和是2^iteration,项目在组中的概率Aa总是50%.
到目前为止,我希望我是对的,但我们真正追求的是:如果我们重复实验两次,那么至少N有Aa两个项目组合在一起的可能性是多少.(应相当于:什么是至少具有机会N在项目组中AaBb,如果我们延长组的列表AABB,AABb,...,从原来的问题)
因此项目进入的概率Aa是50%,迭代(或2^iteration)的预期值的总和,并且使用测试数据(k = 2,N = 1)将其抛到scipy,我们只得到至少一个项目在组中Aa:
In [75]: bin = scipy.stats.binom(4, .5)
In [76]: sum(b.pmf(x) for x in range(1, 4+1))
Out[76]: 0.93750000000000022
Run Code Online (Sandbox Code Playgroud)
如果我们有两组,那么至少有一个项目,所以AaBb:
In [77]: sum(b.pmf(x) for x in range(1, 4+1))**2
Out[77]: 0.87890625000000044
Run Code Online (Sandbox Code Playgroud)
这与原始问题中的答案完全不同:0.684
我在哪里弄错了?(如果可能的话,请只指出错误,而不是给出一个解决方案,这样就不会有破坏者试图自己解决它)
我一开始按照你的例子,觉得好像很有道理,但是过了一段时间我发现问题出在哪里。
这是指向您错误的指针:
您已计算出在第二代中至少获得 1 个Aa--且至少获得 1 个的概率--Bb。但这还不足以找出AaBb第二代中是否至少有一个,并且Aa--和--Bb必须一致。
例如,考虑以下第二代:aaBb, AABb, Aabb, AaBB所有个体都有或Aa--,但一代中--Bb没有。AaBb