std::mersenne_twister_engine
| ヘッダ <random> で定義
|
||
template< class UIntType, size_t w, size_t n, size_t m, size_t r, UIntType a, size_t u, UIntType d, size_t s, UIntType b, size_t t, UIntType c, size_t l, UIntType f > class mersenne_twister_engine; |
(C++11以上) | |
mersenne_twister_engine はメルセンヌ・ツイスタに基づく乱数エンジンです。 これは区間 [0, 2w
-1] の UIntType 型の高品質な符号なし整数乱数を生成します。
以下の型エイリアスは2つの一般的に使用されるパラメータセットを使用した乱数エンジンを定義します。
ヘッダ
<random> で定義 | |
| 型 | 定義 |
mt19937(C++11)
|
|
mt19937_64(C++11)
|
|
メンバ型
| メンバ型 | 定義 |
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 を生成することが要求されます。