作者latinboy (昵称)
看板Fortran
标题Re: [问题] 固定乱数uniform(0,1)
时间Sat Mar 14 14:51:42 2009
※ 引述《fishrupm (哈啾)》之铭言:
: 之前写了一份作业 要带乱数进去做积分
: 可是写出来的乱数每次都会不一样
: (问学长 跟找网路上的资料都是这样)
: 後来老师说乱数要固定 种子要固定
: 有爬文看到有写卡方的版友
: 出来的数每次也都不一样
: 所以想请问版友 要怎麽写乱数才会固定
如果你是使用 random_number 取乱数
使用前不要call random_seed
种子就会固定为系统内定值
如果不要使用系统内定值
修改种子的方式可参考下式
SUBROUTINE init_random_seed()
INTEGER :: i, n
INTEGER, ALLOCATABLE :: seed(:)
call RANDOM_SEED(SIZE = n)
ALLOCATE(seed(n))
seed = 123456789 * (/ (i, i = 1, n) /)
call RANDOM_SEED(PUT = seed)
DEALLOCATE(seed)
END SUBROUTINE
每个compiler的预设种子不同,甚至演算法也不同
种子给一样也不能保证助教跑出来跟你一样
乱数要固定 种子要固定 其实真的没啥意义.....
: (乱数不就是随便取吗? 怎麽还要每次都一样?问的问题连我自己都觉得很怪= =")
: 谢谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 58.115.18.229
1F:推 fishrupm:谢谢你 我会试试看的 03/14 15:20