subtract_with_carry_engine::seed

エンジンにシードを与えます。

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

参照

関連項目

<random>

subtract_with_carry_engine クラス