次の方法で共有


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

参照

関連項目

<random>

mersenne_twister_engine クラス