メルセンヌ・ツイスタ(Mersenne Twister, MT)法
松本眞・西村拓士両氏によって1996年に発表された擬似乱数生成アルゴリズムである。 他の擬似乱数生成アルゴリズムと比べて以下の特徴がある。 (「Mersenne Twister とは?」より)
-
従来の様々な生成法の欠点を考慮して設計されています。
-
従来にない長周期, 高次元均等分布を持ちます。(周期がで1、623次元超立方体の中に 均等に分布することが証明されています。)
-
生成速度がかなり速い。(処理系にもよりますが、パイプライン処理やキャッシュメモリ のあるシステムでは、Cの標準ライブラリの rand() より高速なこと もあります。なお、開発当時には cokus 版は rand() より4倍程度高速でしたが、その後 ANSI-C の rand() が LCG 法から lagged-fibonacci に 変更されたこともあり、2002年現在 rand と MT の速度差はあまりありません。)
-
メモリ効率が良い。(32ビット以上のマシン用に設計された mt19937.c は、 624ワードのワーキングメモリを消費するだけです。 1ワードは32ビット長とします。
MT法を利用したJavascsriptライブラリを開発した。
- はメルセンヌ素数で Mersenne Twister の名前の由来になっている。 Mersenne Twister では周期サイズごとに複数の実装があるが,がポピュラーな実装として広く使われている。↩