mt19937ar.cの使い方 (2002/1, 2004/2改訂)
このコードはMersenne Twister擬似乱数発生法です。
周期は2^19937-1で、623次元均等分布が保障されます。
初期化を2002年1月に改良しました。
- 初期化:二つの初期化ルーチンが選べます。どちらかは、
使用前にかならず呼び出さないとなりません。
- init_genrand(seed)では、任意の符号なし一ワード長整数
を初期シードとして与えることができます(0でもかまいません)。
- init_by_array(init_key, key_length)では、
符号なしワード長の配列init_keyに格納された整数列を初期
シードとして与えることができます。整数key_lengthは、その
配列の頭から何ワード目までを初期シードとするかを指定します。
配列の長さは、1以上任意です。
- 生成:
上記の二関数のいずれかを用いて初期化した後、次のタイプの
擬似乱数が使用できます。
- genrand_int32() 符号なし32ビット長整数
- genrand_int31() 符号なし31ビット長整数
- genrand_real1() 一様実乱数[0,1] (32ビット精度).
- genrand_real2() 一様実乱数[0,1) (32ビット精度).
- genrand_real3() 一様実乱数(0,1) (32ビット精度).
- genrand_res53() 一様実乱数[0,1) (53ビット精度).
ここで、[0,1]は0,1を含む、[0,1)は0は含むが1は含まない、などを表します。
- main():プログラム例です。init_by_arrayにより、長さ4の配列で
初期化を行っています。符号なし32ビット長整数乱数を1000個、[0,1)一様
実乱数を1000個出力します。
- 出力:このプログラムの出力が、mt19937ar.outです。コードを変更したり
別の言語に移植した場合、この出力を用いてテストをすることを強くお勧めします。
mt19937arのページへ戻る