【发布时间】:2014-05-01 12:26:00
【问题描述】:
我正在编写的程序要求我模拟基因的突变。如果选择基因的某个实例 (J) 进行突变,它必须随机成为替代基因的预定义子集之一。这些离散基因用 0 到 K-1 范围内的整数标记,其中 K 等于等位基因的总数。
所以基本上,我需要帮助编写代码以随机选择 0 到 K-1 范围内不等于 J 的整数。非常感谢任何帮助!
另一个编辑:感谢到目前为止的所有帮助,我想出了以下内容,它忽略了我不能等于 J 的要求。但是,我遇到的另一个问题是该过程必须重复多次次,并且由于每次使用相同的种子 i 的值始终相同。我应该如何确保种子价值不会在每一代人中保持不变?再次感谢任何帮助!
program randtest
implicit none
real*4 :: u(5)
integer :: i(5)
integer :: k = 4
integer, dimension (1) :: seed = (/2817/)
call random_seed(put=seed)
call random_number(u)
i = floor((k+1)*u)
print *, i
end program randtest
【问题讨论】:
-
您可能会在这里找到答案:stackoverflow.com/questions/23057213/…
-
按照链接,将 [0,5] 替换为 [0,K-2](假设 J 在该区间内)。
标签: random fortran fortran90 fortran95