initstate関数は乱数ジェネレータを初期化します。この関数を使用すると,将来使用するために,引数として渡された状態配列を初期化できます。状態配列のサイズ (バイト数) は,使用する乱数ジェネレータがどの程度精巧であるかを判断するために,
initstate関数で使用されます。状態配列が大きくなればなるほど,乱数はよりランダムになります。
状態情報のサイズは 8,32,64,128,256 バイトのいずれかです。 8 バイトより小さいサイズを指定すると,エラーになります。ここに示した値以外の場合は,これらの値の中で最も近い値になるように切り捨てられます。
seed 引数は乱数シーケンスの開始ポイントを指定し,同じポイントで再起動するために提供されます。
initstate関数は,前の状態情報配列を指すポインタを返します。
状態を初期化した後,
setstate関数を使用して状態を迅速に切り換えることができます。 state 引数によって定義される配列は,
initstate関数が呼び出されるか,
setstate関数が再び呼び出されるまで,この後の乱数の生成で使用されます。
setstate関数は前の状態配列を指すポインタを返します。
初期化した後,状態配列は次のいずれかの方法で異なるポイントから再開することができます。
- seed 引数,state 配列,配列の size を適切に設定して,
initstate関数を使用する方法。
- 適切な状態を設定して
setstate関数を使用した後,適切な seed を指定して
srandom関数を使用する方法。 2 つの関数を使用すると,状態配列を初期化した後,状態配列のサイズを保存する必要がないという利点があります。
setstate,
srandom,
randomも参照してください。