std::linear_congruential_engine
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <random> で定義
|
||
template< class UIntType, UIntType a, UIntType c, UIntType m > class linear_congruential_engine; |
(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) (パブリック静的メンバ定数) |