名前空間
変種
操作

std::mersenne_twister_engine

提供: cppreference.com
< cpp‎ | numeric‎ | random
 
 
 
擬似乱数生成
一様ランダムビットジェネレータ
エンジンとエンジンアダプタ
mersenne_twister_engine
(C++11)
非決定的なジェネレータ
分布
一様分布
ベルヌーイ分布
ポアソン分布
正規分布
標本分布
シードシーケンス
(C++11)
C のライブラリ
 
 
ヘッダ <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)

std::mersenne_twister_engine<std::uint_fast32_t, 32, 624, 397, 31,
                             0x9908b0df, 11,
                             0xffffffff, 7,
                             0x9d2c5680, 15,
                             0xefc60000, 18, 1812433253>

松本と西村による32ビットのメルセンヌ・ツイスタ (1998年)[edit]

mt19937_64(C++11)

std::mersenne_twister_engine<std::uint_fast64_t, 64, 312, 156, 31,
                             0xb5026f5aa96619e9, 29,
                             0x5555555555555555, 17,
                             0x71d67fffeda60000, 37,
                             0xfff7eee000000000, 43, 6364136223846793005>

松本と西村による64ビットのメルセンヌ・ツイスタ (2000年)[edit]

目次

[編集] メンバ型

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

[編集] メンバ関数

構築およびシード
エンジンを構築します
(パブリックメンバ関数) [edit]
エンジンの現在の状態を設定します
(パブリックメンバ関数) [edit]
生成
エンジンの状態を進めて生成された値を返します
(パブリックメンバ関数) [edit]
エンジンの状態を指定した量だけ進めます
(パブリックメンバ関数) [edit]
特性
[静的]
出力範囲の有り得る最小値を取得します
(パブリック静的メンバ関数) [edit]
[静的]
出力範囲の有り得る最大値を取得します
(パブリック静的メンバ関数) [edit]

[編集] 非メンバ関数

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

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

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 を生成することが要求されます。