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