RANDOM_NUMBER によって使用された疑似乱数発生ルーチンを再始動または照会します。
引き数タイプおよび属性
引き数がちょうど 1 つだけか、またはまったく存在しないかのどちらかでなければなりません。
+----------------------------------IBM 拡張----------------------------------+
+--------------------------------IBM 拡張の終り-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
Random_seed を使用すると、2 つの乱数発生ルーチンを切り換えることができます。乱数発生ルーチン 1 がデフォルトです。各乱数発生ルーチンは、それぞれ専用のシードを維持し、通常は、最後に生成した数の次の数からサイクルを再開します。
乱数発生ルーチン 1 は、次の式により、乗算合同式法を使用します。
S(I+1) = ( 16807.0 * S(I) ) mod (2.0**31-1)
かつ
X(I+1) = S(I+1) / (2.0**31-1)
乱数発生ルーチン 1 は、 2**31-2 の乱数後に循環します。
乱数発生ルーチン 2 も、次の式により、乗算合同式法を使用します。
S(I+1) = ( 44,485,709,377,909.0 * S(I) )
mod (2.0**48)
かつ
X(I+1) = S(I+1) / (2.0**48)
乱数発生ルーチン 2 は、(2**46) 個の乱数発生後に循環します。乱数発生ルーチン 1 がデフォルトになっていますが (以前のバージョンとの互換性を保つため)、乱数発生ルーチン 1 よりも乱数発生ルーチン 2 の方が実行が速く、循環するまでの間隔も長くなっているため、新しいプログラムでは乱数発生ルーチン 2 を使用することをお勧めします。
引き数が存在しない場合は、現行の乱数発生ルーチンのシードはデフォルト値 1d0 に設定されます。
+--------------------------------IBM 拡張の終り-------------------------------+
クラス
サブルーチン
例
CALL RANDOM_SEED
! Current generator sets its seed to 1d0
CALL RANDOM_SEED (SIZE = K)
! Sets K = 64 / BIT_SIZE( 0 )
CALL RANDOM_SEED (PUT = SEED (1 : K))
! Transfer seed to current generator
CALL RANDOM_SEED (GET = OLD (1 : K))
! Transfer seed from current generator