エンジンにシードを与えます。
void seed(UIntType x0 = default_seed);
void seed(seed_seq& seq);
パラメーター
x0
シード値。seq
ランダム化されたシードを供給する seed_seq 型のオブジェクト。
解説
前提条件 : 0 < x0
1 つ目のシード関数は、エンジン gen を構築します。
linear_congruential_engine<UIntType, 40014, 0, 2147483563>
gen(x0 == 0 ? default_seed: x0);
その後、h[0] から始まる R 履歴値に、gen() を呼び出すことで作成された値を設定します。
2 つ目のシード関数は、これらの履歴値を次のように設定します。
k は、すべてのビットを UIntType 整数に供給するために必要な unsigned long 整数の数です (少なくとも 1)。
a は、UIntType 型の R * k 個の要素の配列です。
a は、seq.generate(&a[0], &a[R * k]) を呼び出すことによって初期化されます。
各 h[i] は、a[i * k] から始まり、下位ビットを供給する k 個の要素をパッキングすることによって構成されます。
各 h[i] は、切り捨てモジュロ M です。
いずれの場合も、格納されるキャリーは h[R - 1] == 0 です。
必要条件
ヘッダー : <random>
名前空間: std