Java と matlab でメルセンヌ ツイスターを比較しています。私は両方で同じ種子を使用しています。私の問題は、各数値ジェネレーター (それぞれ Java と Matlab で実行されている Mersenne Twister) から 10 個の数値を出力すると、結果の出力が一致しないように見えることです。Matlab バージョンからの出力データは、Java のプログラムから毎秒の数値を出力します。
Java プリント:
0.417、0.997、0.720、0.932、0.0001..
Matlab プリント:
0.417、0.720、0.0001..
なぜこれが起こるのかを理解するために、誰かが私を正しい方向に向けることができますか?
ジャワ:
public class TestRand {
static MersenneTwister r = new MersenneTwister(1);
public static void main(String[] args) {
int ant = 10;
float[] randt = new float[ant];
for (int i = 0; i < ant; i++){
randt[i] = r.nextFloat()*1;
System.out.println(randt[i]);
}
System.out.println("------------twist");
}
}
マトラブ:
s = RandStream('twister','Seed',1)
RandStream.setGlobalStream(s);
r = 1 .* rand(1,10);
私は MatLab で Mersenne Twister の標準実装を使用しています。私が使用している Java バージョンはここにあります。