« 講義 | メイン | Mersenne Twister (2) »
2005年07月19日
Mersenne Twister
Mersenne Twister (メルセンヌツイスター)のテストプログラムを書いてみました。テストといってもドキュメントで示されているパターンを表示する程度のものです。
c 言語の rand によるプロット | Mersenne Twister によるプロット |
と、確かにパターンが表示されるのが確認できました。しかし このドキュメント で示されるように、このプロットは [0, 1/70] の区間をプロットしています。即ち、[0, 0.01428] くらいの区間をプロットしていることになります(開閉区間は厳密ではありません)。
これを読んでから思ったのですが、これってランダム性能というか分解性能の問題のような気がしました。最初はこの原点付近 1/70 を知らずに組んでしまったので、しっかりランダムな感じにプロットがされてしまいました。
講義のビデオを見ればわかりますが疑似乱数にはいろいろな性格があり Mersenne Twister は(現時点のコンピュータアーキテクチャ上では)よい疑似乱数生成器であるのだそうです。この辺に関するいろんな言及はビデオで説明されています。詳しくは論文を読むのがいいでしょう。
投稿者 napier : 2005年07月19日 00:07
トラックバック
このエントリーのトラックバックURL:
http://will.squares.net/mt/mt-tb.cgi/235