◐ Shell
clean mode source ↗

std::linear_congruential_engine - cppreference.com

提供: cppreference.com

<tbody> </tbody>

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年に「最低基準」として選定されたもの [edit]

minstd_rand(C++11) std::linear_congruential_engine<std::uint_fast32_t, 48271, 0, 2147483647>

Park、 Miller および Stockmeyer によって1993年に推奨された新たな「最低基準」[edit]

メンバ型

メンバ型 定義
result_type エンジンによって生成される整数型。 符号なし整数型でなければ、結果は未定義です。

メンバ関数

構築およびシード
エンジンを構築します
(パブリックメンバ関数) [edit]
エンジンの現在の状態を設定します
(パブリックメンバ関数) [edit]
生成
エンジンの状態を進めて生成された値を返します
(パブリックメンバ関数) [edit]
エンジンの状態を指定した量だけ進めます
(パブリックメンバ関数) [edit]
特性

[静的]

出力範囲の有り得る最小値を取得します
(パブリック静的メンバ関数) [edit]

[静的]

出力範囲の有り得る最大値を取得します
(パブリック静的メンバ関数) [edit]

非メンバ関数

メンバオブジェクト

constexpr UIntType multiplier

[静的]

乗数項 (a)
(パブリック静的メンバ定数)

constexpr UIntType increment

[静的]

加算項 (c)
(パブリック静的メンバ定数)

constexpr UIntType modulus

[静的]

モジュラス項 (m)
(パブリック静的メンバ定数)

constexpr UIntType default_seed

[静的]

デフォルトのシード (1)
(パブリック静的メンバ定数)