私は私がシード初期化するために、次のコードを使用します(私はそれを見つけた私は知らないが、誰もが、絶対に誰もが正確にこれを持っているようだ!なぜ?なぜ37?)Fortran RANDOM_SEED入力が配列であるのはなぜですか?
SUBROUTINE init_random_seed()
IMPLICIT NONE
INTEGER :: i, n, clock
INTEGER, DIMENSION(:), ALLOCATABLE :: seed
CALL RANDOM_SEED(size = n)
ALLOCATE(seed(n))
CALL SYSTEM_CLOCK(COUNT=clock)
seed = clock + 37 * (/ (i - 1, i = 1, n) /)
CALL RANDOM_SEED(PUT = seed)
DEALLOCATE(seed)
END SUBROUTINE
さて、なぜですPUTの引数(サイズ.ge。n)?私はそれがどのようにしなければならないのか、なぜそうでないのかを伝える情報源しか見つけることができません。
- http://www.mhhe.com/engcs/general/chapman/intro/INTRINSI.PDF
- https://gcc.gnu.org/onlinedocs/gfortran/RANDOM_005fSEED.html
- https://software.intel.com/en-us/node/581112
Fortran標準では配列(サイズは1)である可能性があるため、配列です。それ以外に、PRNGが複数の番号で記述された状態を持つことによって利益を得るのはなぜですか? – francescalus
はい。特に、PRNGは[ここ](https://gcc.gnu.org/onlinedocs/gfortran/RANDOM_005fNUMBER.html)で説明されています。 – physkets