首先,我是红宝石新手,所以请您对我有耐心。:) 其次,在您阅读请求并认为我正在尝试获得简单的答案之前,请相信我,过去 7 天我一直在网上搜索它们,但没有找到任何回答我非常具体的问题的答案. 第三,对冗长的描述感到抱歉,但我需要的帮助是指向正确的方向。
我有一个关于基因漂移的小班项目的想法。在群体遗传学中,概率矩阵用于给出等位基因的频率在 t1 代到 t2 代中从 i 变为 j 的概率。
因此,假设我从 t1 中的一个等位基因 B 副本开始,并且想知道它在 t2 中变为三个副本的概率。该值(由二项分布给出,我已经写了一个小代码,效果很好)然后将进入对应于第 1 列第 3 行的单元格(也许这可以更好地澄清事情:https://docs .google.com/viewer?url=http%3A%2F%2Fsamples.jbpub.com%2F9780763757373%2F57373_CH04_FINAL.pdf)。
我不知道该怎么做并想获得有关信息的是:
我如何制作一个方矩阵,其中行/列的数量由用户确定(比如有人想要获得 4 人口的概率矩阵,其中有 8 个等位基因拷贝,但其他人想要获得概率矩阵100 个人口,其中有 200 个等位基因拷贝?)
如何将二项式分布方程应用于每个不同列/行组合的值(即在对应于第 1 列第 3 行的单元格中,该值将由变量 1 和 3 的二项式方程确定;和在对应于第 4 列第 7 行的单元格中,该值将由具有变量 4 和 7 的二项式方程确定)。变量不同组合的数量(如 1 和 1、1 和 2、1 和 3 等)由用户设置的列/行数决定。
我不是要求任何人给我代码或为我做我的工作,我要求的是你,经验丰富的程序员,为我指出正确答案的方向,因为我非常悲惨地未能找到这个方向。我应该研究数组而不是矩阵吗?我应该研究特定的迭代器吗?哪个?有没有人有我可以研究的更具体的材料,或者可以根据创建矩阵的经验给我提示?我真的很想学习 ruby,并学习如何做到这一点,而不仅仅是完成它。