std::mersenne_twister_engine
ヘッダ <random> で定義
|
||
template< class UIntType, |
(C++11以上) | |
mersenne_twister_engine
はメルセンヌ・ツイスタに基づく乱数エンジンです。 これは区間 [0, 2w
-1] の UIntType
型の高品質な符号なし整数乱数を生成します。
以下の型エイリアスは2つの一般的に使用されるパラメータセットを使用した乱数エンジンを定義します。
ヘッダ
<random> で定義 | |
型 | 定義 |
mt19937 (C++11)
|
std::mersenne_twister_engine<std::uint_fast32_t, 32, 624, 397, 31, |
mt19937_64 (C++11)
|
std::mersenne_twister_engine<std::uint_fast64_t, 64, 312, 156, 31, |
目次 |
[編集] メンバ型
メンバ型 | 定義 |
result_type
|
エンジンによって生成される整数型。 符号なし整数型でなければ、結果は未定義です。 |
[編集] メンバ関数
構築およびシード | |
エンジンを構築します (パブリックメンバ関数) | |
エンジンの現在の状態を設定します (パブリックメンバ関数) | |
生成 | |
エンジンの状態を進めて生成された値を返します (パブリックメンバ関数) | |
エンジンの状態を指定した量だけ進めます (パブリックメンバ関数) | |
特性 | |
[静的] |
出力範囲の有り得る最小値を取得します (パブリック静的メンバ関数) |
[静的] |
出力範囲の有り得る最大値を取得します (パブリック静的メンバ関数) |
[編集] 非メンバ関数
擬似乱数エンジンの内部状態を比較します (関数テンプレート) | |
擬似乱数エンジンに対してストリーム入出力を行います (関数テンプレート) |
[編集] メンバオブジェクト
constexpr size_t word_size [静的] |
テンプレート引数 w 、エンジンによって生成される値の範囲を決定します (パブリック静的メンバ定数) |
constexpr size_t state_size [静的] |
テンプレート引数 n 、エンジンの状態は n 個の UIntType 型の値です (パブリック静的メンバ定数) |
constexpr size_t shift_size [静的] |
テンプレート引数 m (パブリック静的メンバ定数) |
constexpr size_t mask_bits [静的] |
テンプレート引数 r 、捻り値としても知られています (パブリック静的メンバ定数) |
constexpr UIntType xor_mask [静的] |
テンプレート引数 a 、条件付き XOR マスク (パブリック静的メンバ定数) |
constexpr size_t tempering_u [静的] |
テンプレート引数 u 、ビットを掻き混ぜる (調律する) 行列の第1要素 (パブリック静的メンバ定数) |
constexpr UIntType tempering_d [静的] |
テンプレート引数 d 、ビットを掻き混ぜる (調律する) 行列の第2要素 (パブリック静的メンバ定数) |
constexpr size_t tempering_s [静的] |
テンプレート引数 s 、ビットを掻き混ぜる (調律する) 行列の第3要素 (パブリック静的メンバ定数) |
constexpr UIntType tempering_b [静的] |
テンプレート引数 b 、ビットを掻き混ぜる (調律する) 行列の第4要素 (パブリック静的メンバ定数) |
constexpr size_t tempering_t [静的] |
テンプレート引数 t 、ビットを掻き混ぜる (調律する) 行列の第5要素 (パブリック静的メンバ定数) |
constexpr UIntType tempering_c [静的] |
テンプレート引数 c 、ビットを掻き混ぜる (調律する) 行列の第6要素 (パブリック静的メンバ定数) |
constexpr size_t tempering_l [静的] |
テンプレート引数 l 、ビットを掻き混ぜる (調律する) 行列の第7要素 (パブリック静的メンバ定数) |
constexpr UIntType initialization_multiplier [静的] |
テンプレート引数 f (パブリック静的メンバ定数) |
constexpr UIntType default_seed [静的] |
定数値 5489u (パブリック静的メンバ定数) |
[編集] ノート
デフォルト構築された std::mt19937
の連続呼び出しの 10000 回目は値 4123659995 を生成することが要求されます。
デフォルト構築された std::mt19937_64
の連続呼び出しの 10000 回目は値 9981545732273789042 を生成することが要求されます。