MTToolBox  0.2.10
公開メンバ関数
MTToolBox::MersenneTwister クラス

Mersenne Twister 疑似乱数生成器 [詳解]

#include <MersenneTwister.hpp>

MTToolBox::MersenneTwister の継承関係図
MTToolBox::AbstractGenerator< uint32_t >

公開メンバ関数

 MersenneTwister ()
 コンストラクタ [詳解]
 
 MersenneTwister (uint32_t value)
 コンストラクタ [詳解]
 
 MersenneTwister (const std::string &value)
 コンストラクタ [詳解]
 
 MersenneTwister (const uint32_t *value, int size)
 コンストラクタ [詳解]
 
 ~MersenneTwister ()
 デストラクタ [詳解]
 
void seed (uint32_t value)
 32bit整数による初期化 [詳解]
 
void seed (const std::string &value)
 string文字列による初期化 [詳解]
 
void seed (const uint32_t *value, int key_length)
 符号なし整数配列による初期化 [詳解]
 
template<class T >
void seed_array (const T *value, int key_length)
 T 型配列による初期化 [詳解]
 
uint32_t generate ()
 疑似乱数を生成する [詳解]
 
uint32_t next ()
 疑似乱数を生成する [詳解]
 
int bitSize () const
 状態空間のビットサイズである 19937 を返す。 [詳解]
 
- 基底クラス MTToolBox::AbstractGenerator< uint32_t > に属する継承公開メンバ関数
virtual ~AbstractGenerator ()
 仮想デストラクタ(必須) [詳解]
 

詳解

Mersenne Twister 疑似乱数生成器

覚え書き
この実装では、AbstractGenerator の仕様にあわせて、 一度の呼び出しで1個の疑似乱数を生成するようにしてある。 そうするとまとめて作る場合よりも生成速度が落ちるので、 気休め程度でも速度を向上させるために、状態空間より大きな配列を使用して 剰余演算をビットマスクで済ませるようにしてある。

構築子と解体子

MTToolBox::MersenneTwister::MersenneTwister ( )
inline

コンストラクタ

参照先 seed().

MTToolBox::MersenneTwister::MersenneTwister ( uint32_t  value)
inline

コンストラクタ

引数
[in]value初期化の種

参照先 seed().

MTToolBox::MersenneTwister::MersenneTwister ( const std::string &  value)
inline

コンストラクタ

引数
[in]value初期化の種(文字列)

参照先 seed().

MTToolBox::MersenneTwister::MersenneTwister ( const uint32_t *  value,
int  size 
)
inline

コンストラクタ

引数
[in]value初期化の種(配列)
[in]size配列の長さ

参照先 seed().

MTToolBox::MersenneTwister::~MersenneTwister ( )
inline

デストラクタ

関数詳解

int MTToolBox::MersenneTwister::bitSize ( ) const
inlinevirtual

状態空間のビットサイズである 19937 を返す。

配列は状態空間より大きく取ってあるが、それは速度向上のために 冗長になっているだけで、状態空間の大きさはあくまでも19937である。

戻り値
常に 19937 を返す

MTToolBox::AbstractGenerator< uint32_t >を実装しています。

uint32_t MTToolBox::MersenneTwister::generate ( )
inlinevirtual

疑似乱数を生成する

戻り値
1個の32bit符号なし整数

MTToolBox::AbstractGenerator< uint32_t >を実装しています。

参照先 next().

uint32_t MTToolBox::MersenneTwister::next ( )
inline

疑似乱数を生成する

戻り値
1個の32bit符号なし整数

参照元 generate().

void MTToolBox::MersenneTwister::seed ( uint32_t  value)
inlinevirtual

32bit整数による初期化

引数
[in]value初期化の種

MTToolBox::AbstractGenerator< uint32_t >を実装しています。

参照元 MersenneTwister(), seed_array().

void MTToolBox::MersenneTwister::seed ( const std::string &  value)
inline

string文字列による初期化

引数
[in]value初期化の種
void MTToolBox::MersenneTwister::seed ( const uint32_t *  value,
int  key_length 
)
inline

符号なし整数配列による初期化

引数
[in]value初期化の種
[in]key_length配列の長さ
template<class T >
void MTToolBox::MersenneTwister::seed_array ( const T *  value,
int  key_length 
)
inline

T 型配列による初期化

テンプレート引数
T配列の要素の型
引数
[in]value初期化の種
[in]key_length文字列の長さ

参照先 seed().


このクラス詳解は次のファイルから抽出されました: