メルセンヌ・ツイスタとは、擬似乱数の生成方法のひとつである。
概要
最近(2011年)のプログラミング言語で、実装が提供され、容易に利用できることの多い乱数生成の方法である。
当初考えられた名前は"Primitive Twisted Generalized Feedback Shift Register Sequence"と言う名前であったが、名前について複雑すぎるとクヌース教授(プログラムや数学の世界で超有名なえらい人)に指摘され、メルセンヌ・ツイスタという現在の名前となった。
これは、メルセンヌ・ツイスタの開発に携わった松本眞(Makoto matsumoto)氏と西村拓士(Takuji Nishimura)氏両方のイニシャルにもなっている。こっそりと。
伝統的に使われてきた疑似乱数生成の方法では「疑似乱数ではあるが、(部分的に)よく見たら明らかに分かりやすい規則性がある」「他のマシンへ移植しづらい」「疑似乱数の周期が短い(すぐに乱数の数字の流れがループしてしまう)」「動作が遅い」のような問題点があったが、メルセンヌ・ツイスタによる乱数実装はこれらの欠点を改善したつくりとなっている。
1996年に発表された技術であるが、現在(2011年)も改良や派生の実装が続けられており、より動作の改善したバージョンや、性能をゆるくした代わりに軽く動作するバージョンが発表されている。
補足
乱数と言っても、メルセンヌ・ツイスタはアルゴリズムの性質上、完全に予測不可能なものとはならない。このため、メルセンヌ・ツイスタをそのままセキュリティ技術の根拠として利用することはできない。メルセンヌ・ツイスタをこのような用途で用いる場合は予測不能となる操作(暗号学的ハッシュ関数など)を通して利用しなければならない。
メルセンヌ・ツイスタは、その動作においてメルセンヌ素数を利用しているところから名前がつけられている。計算式による疑似乱数生成は(物理などの目に見える領域からのアプローチでは無い)純粋な数学による研究の結果であり、メルセンヌ・ツイスタは「数学って勉強して何の役に立つの?」という問いかけに対する答えのひとつとなっている。
関連項目
関連リンク
-
Mersenne Twister: A random number generator (since 1997/10)- 公式ページ(旧版)
- SIMD-oriented Fast Mersenne Twister (SFMT) - 新板。SSE2を利用できるのならば既存のMTの4~5倍程度になる
- Mersenne Twister for Graphic Processors (MTGP) - GPGPUを利用した高速化版
- Tiny Mersenne Twister (TinyMT) - 軽量化版
- 1
- 0pt