ネタ?

Mersenne Twisterって知ってる?
いや、昨日の三限の授業までは僕も知らなかったんだけど。
今世紀になってできた乱数発生アルゴリズムなんだけど、
公式ホームページを引用するとこんなこと書いてある。

MT(Mersenne Twister )は、松本眞 ・西村拓士(アルファベット順)により1996年から1997年に渡って開発された疑似乱数生成アルゴリズムです従来の様々な生成法の欠点を考慮して設計されています。プログラムはCで実装されていて、このホームページからダウンロードできます。従来にない長周期, 高次元均等分布を持ちます。(周期が2^19937-1で、623次元超立方体の中に 均等に分布することが証明されています。)生成速度がかなり速い。(処理系にもよりますが、パイプライン処理やキャッシュメモリのあるシステムでは、Cの標準ライブラリのrand()より高速なこともあります。)メモリ効率が良い。(32ビット以上のマシン用に設計されたmt19937.cは、624ワードのワーキングメモリを消費するだけです。1ワードは32ビット長とします。

というわけで、一般的な乱数(C言語のrand()関数とか。)の弱点をすべて克服し、
さらにスピードアップ*1、というへんなすばらしいもの。
NASAでも使われているらしい。
作った人の一人、松本眞氏が妙に(?)有名で、明智抄っていう漫画家(彼はファンだった)と2000年に結婚、
その家から近いから、と言う理由で現在広島大学にいるそうな。


調べていたらいつもお世話になっている以下のウィキで実証していた。
http://www.c3.club.kyutech.ac.jp/~sukiyaki/index.php?%CD%F0%BF%F4%C8%AF%C0%B8
つーわけで自作ゲームに利用してみようかと画策中。


もっと詳しく知りたい人は公式ホームページか以下のページで。
メルセンヌ・ツイスタ - Wikipedia


Ruby の rand は, 2002/07/27からMersenne Twister を採用しているらしい。

*1:以前はスピード差が4倍ほどあったらしい。最近C言語アルゴリズムが変わったため、1.5倍ほどらしいが。