Mersenne Twister とは?
Mersenne Twister(以下MT)は、松本眞
・西村拓士(アルファベット順)により1996年から1997年に渡って
開発された疑似乱数生成アルゴリズムです。(2002年1月に
初期化ルーチンを改善しました。)
MTは次の様な特徴を持っています。
- 従来の様々な生成法の欠点を考慮して設計されています。
- プログラムはCで実装されていて、
このホームページからダウンロードできます。
- 従来にない長周期, 高次元均等分布を持ちます。
(周期が2^19937-1で、623次元超立方体の中に
均等に分布することが証明されています。)
- 生成速度がかなり速い。
(処理系にもよりますが、パイプライン処理やキャッシュメモリ
のあるシステムでは、Cの標準ライブラリのrand()より高速なこと
もあります。なお、開発当時にはcokus版はrand()より4倍程度高速
でしたが、その後ANSI-Cのrand()がLCG法からlagged-fibonacciに
変更されたこともあり、2002年現在randとMTの速度差はあまりありません。)
- メモリ効率が良い。
(32ビット以上のマシン用に設計されたmt19937.cは、624ワードの
ワーキングメモリを消費するだけです。1ワードは32ビット長とします。
お願いと謝辞
名前の由来
MTのどこがいいか?
MTのホームページへ戻る