mersenne_twister_engine::seed
エンジンにシードを与えます。
void seed(result_type x0 = default_seed);
void seed(seed_seq& seq);
パラメーター
x0
シード値。seq
ランダム化されたシードを供給する seed_seq 型のオブジェクト。
解説
前提条件 : 0 < x0
1 つ目のシード関数は、最も古い履歴値 h[0] を x0 mod 2W に設定した後、反復処理で i を 1 から N - 1 の範囲で変化させながら、連続する個々の履歴値 h[i] を (i + F * (h[i - 1] >> (W - 2))) mod 2W に設定します。
2 つ目のシード関数は、h[0] から始まる N 個の履歴値を次のように設定します。
k は、すべてのビットを UIntType 整数に供給するために必要な unsigned long 整数の数です (少なくとも 1)。
a は、UIntType 型の N * k 個の要素の配列です。
a は、seq.generate(&a[0], &a[N * k]) を呼び出すことによって初期化されます。
各 h[i] は、a[i * k] から始まり、下位ビットを供給する k 個の要素をパッキングすることによって構成されます。
必要条件
ヘッダー : <random>
名前空間: std