srand48関数は乱数ジェネレータを初期化します。この関数は,プログラムの中で
drand48,
lrand48,または
mrand48関数を呼び出す前に使用することができます ( これは推奨はされませんが,
drand48,
lrand48,または
mrand48関数が,初期化関数を呼び出すことなく呼び出された場合には,定数のデフォルト・イニシアライザ値が自動的に提供されます )。
この関数は,次の線形合同式に従って,48 ビットの整数値 Xi のシーケンスを生成します。
Xn+1 = (aXn+c)mod m n >= 0
|
引数 m は 248 に等しいので, 48 ビット整数算術演算が実行されます。
lcong48関数を呼び出さなかった場合,乗数値
a と加算される値 c は次のようになります。
a = 5DEECE66D16 = 2736731631558
c = B16 = 138
|
初期化関数
srand48は,Xi の上位 32 ビットを,その引数に含まれている下位 32 ビットに設定します。 Xi の下位 16 ビットは,恣意的な値 330E _16 に設定されます。
drand48,
lrand48,および
mrand48も参照してください。