TinyMT Java Implementation (Japanese)

READ ME FIRST

ここで紹介するのは、TinyMTをJavaに移植したものです。TinyMT32クラス、 TinyMT64クラス、ThreadLocalRandomクラスが提供されています。

注意:どのクラスもスレッドセーフではありません。 java.util.Randomクラスは スレッドセーフなので、TinyMTの三つのクラスは java.util.Randomクラスを 継承していません。 代わりに、org.apache.commons.math.random.RandomGenerator インターフェイスを実装しています。

TinyMT32とTInyMT64用にそれぞれ65536個のパラメータがリソースファイルに 定義されています。 ThreadLocalRandom の実体はTinyMT32ですが、パラメータは上記65536個 とは別のものを使用しています。

jump メソッドが提供されています。

必要環境

このプログラムをコンパイルおよび実行するには、以下の環境が必要です。

サンプル

import jp.ac.hiroshima_u.sci.math.saito.tinymt.TinyMT32;

public class Test {
    public static void main(String[] args) {
        TinyMT32 tiny = TinyMT32.getDefault(args[0]);
	for (int i = 0; i < 10; i++) {
	    for (int j = 0; j < 5; j++) {
		System.out.print(String.format("%08x ", tiny.nextInt()));
	    }
	    System.out.println();
	}
    }
}

ライセンス

LICENSE.txt ファイルを見てください。