这里是运用概率论的一些知识,算遗传、基因相关的东西
joint probability
我要被难死了,真的好难,或者是我没太学懂吧,配合 copilot 慢慢啃下来的
需要注意的是:
- 搞清楚辅助函数的含义,这里需要的是计算从父母那里得到基因的概率,所以不用再在内部分类讨论了
for person in people
这里相当于是遍历 people 字典中 person 的 key,因此不能把 person 当做一个字典来访问,而是使用people[person]
来访问
- 这里算的是整个 people 一家子出现这种表现性状的概率,因此在每次 person 计算完后需要更新总概率
update
这个简单多了,就是把 p 这个算出来的概率填到 probability 字典中对应的项中,分类讨论即可
normalize
这里做归一化,需要把某一项下对应的所有概率加起来,看看需要扩多少倍,然后更改原有的概率
这里我做麻烦了,加和可以通过 sum 来实现
至此,Heredity 项目完结
