作者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