名前空間
変種
操作

std::linear_congruential_engine

提供: cppreference.com
< cpp‎ | numeric‎ | random
 
 
数値演算ライブラリ
一般的な数学関数
特殊な数学関数 (C++17)
数学定数 (C++20)
浮動小数点環境 (C++11)
複素数
数値配列
擬似乱数生成
コンパイル時有理数算術 (C++11)
数値演算アルゴリズム
(C++17)
(C++17)
補間
(C++20)
(C++20)
汎用の数値演算
(C++11)
(C++17)
ビット操作
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
 
擬似乱数生成
一様ランダムビットジェネレータ
エンジンとエンジンアダプタ
linear_congruential_engine
(C++11)
非決定的なジェネレータ
分布
一様分布
ベルヌーイ分布
ポアソン分布
正規分布
標本分布
シードシーケンス
(C++11)
C のライブラリ
 
 
ヘッダ <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年に「最低基準」として選定されたもの [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]

[編集] 非メンバ関数

擬似乱数エンジンの内部状態を比較します
(関数テンプレート) [edit]
擬似乱数エンジンに対してストリーム入出力を行います
(関数テンプレート) [edit]

[編集] メンバオブジェクト

constexpr UIntType multiplier
[静的]
乗数項 (a)
(パブリック静的メンバ定数)
constexpr UIntType increment
[静的]
加算項 (c)
(パブリック静的メンバ定数)
constexpr UIntType modulus
[静的]
モジュラス項 (m)
(パブリック静的メンバ定数)
constexpr UIntType default_seed
[静的]
デフォルトのシード (1)
(パブリック静的メンバ定数)