std::linear_congruential_engine
提供: cppreference.com
ヘッダ <random> で定義
|
||
template< class UIntType, |
(C++11以上) | |
linear_congruential_engine
は線形合同法 (LCG) に基づく乱数生成エンジンです。 LCG は単一の整数から構成される状態を持ちます。
LCG 関数の遷移アルゴリズムは x
i+1 ← (ax
i+c) mod m です。
以下の typedef は2つの一般的に使用されるパラメータセットを持つ乱数エンジンを定義します。
ヘッダ
<random> で定義 | |
型 | 定義 |
minstd_rand0 (C++11)
|
std::linear_congruential_engine<std::uint_fast32_t, 16807, 0, 2147483647> Lewis、 Goodman および Miller によって1969年に発見され、 Park と Miller によって1988年に「最低基準」として選定されたもの |
minstd_rand (C++11)
|
std::linear_congruential_engine<std::uint_fast32_t, 48271, 0, 2147483647> Park、 Miller および Stockmeyer によって1993年に推奨された新たな「最低基準」 |
目次 |
[編集] メンバ型
メンバ型 | 定義 |
result_type
|
エンジンによって生成される整数型。 符号なし整数型でなければ、結果は未定義です。 |
[編集] メンバ関数
構築およびシード | |
エンジンを構築します (パブリックメンバ関数) | |
エンジンの現在の状態を設定します (パブリックメンバ関数) | |
生成 | |
エンジンの状態を進めて生成された値を返します (パブリックメンバ関数) | |
エンジンの状態を指定した量だけ進めます (パブリックメンバ関数) | |
特性 | |
[静的] |
出力範囲の有り得る最小値を取得します (パブリック静的メンバ関数) |
[静的] |
出力範囲の有り得る最大値を取得します (パブリック静的メンバ関数) |
[編集] 非メンバ関数
擬似乱数エンジンの内部状態を比較します (関数テンプレート) | |
擬似乱数エンジンに対してストリーム入出力を行います (関数テンプレート) |
[編集] メンバオブジェクト
constexpr UIntType multiplier [静的] |
乗数項 (a) (パブリック静的メンバ定数) |
constexpr UIntType increment [静的] |
加算項 (c) (パブリック静的メンバ定数) |
constexpr UIntType modulus [静的] |
モジュラス項 (m) (パブリック静的メンバ定数) |
constexpr UIntType default_seed [静的] |
デフォルトのシード (1) (パブリック静的メンバ定数) |