---
松本眞氏と西村拓士氏によるC言語版をDavid Beaumont氏がJavaに移植したものが都合よく、一つのソースコードをインポートするだけで実行できました。
コードはhttp://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/VERSIONS/JAVA/MTRandom.java で公開されています。
ライセンスはLGPLで、依存ライブラリは特にありません。
利用は簡単で、
net.goui.util.MTRandomをインポートして、インスタンス化(new MTRandom(seed))します。
あと、nextメソッドで乱数値を取り出すだけです。
---
1996年に国際会議で発表されたメルセンヌ・ツイスタ (Mersenne twister、通称MT) は、高速に高品質の擬似乱数列を生成するアルゴリズムです。
偏りが少ないので統計計算などのバックで動いています。
メルセンヌ・ツイスタの数列は、ビット演算と行列式の計算を利用した漸化式で作られます。
漸化式から求まるため、予測可能という欠点があるのですが、逆にいうとシード値と乱数呼び出しが同じ順なら、結果を再現できることになります。