real function ran (i) integer*4 i
ran を繰り返し呼び出すと、均一した分布で乱数が生成されます。
lcrans(3M) を参照してください。
範囲には 0.0 は含まれ、1.0 は含まれません。このアルゴリズムは、乗算合同型の一般的な乱数ジェネレータです。一般に、i の値は、呼び出し側プログラムの実行中に一度だけ設定されます。i の初期値は、大きな奇数の整数にするようにしてください。ran を呼び出すたびに、順番に次の乱数が返されます。
呼び出し側プログラムを実行するたびに異なる乱数のシーケンスを取得するには、実行するたびに引数 i を異なる初期値に設定する必要があります。
使用法:
real r, ran
integer*4 i
i = ...
...
r = ran(i)
例:
demo% cat ran1.f
* ran1.f <-- Generate random numbers
integer*4 i, n
real r(10)
i = 760013
do n = 1, 10
r(n) = ran ( i )
end do
write ( *, "( 5 f11.6 )" ) r
end
demo% f77 -silent ran1.f
demo% a.out
0.222058 0.299851 0.390777 0.607055 0.653188
0.060174 0.149466 0.444353 0.002982 0.976519
demo%
libfui.a
『数値計算ガイド』の lcrans、addrans、shufrans