所以我想測試是否是隨機生成的整數序列,但它不工作... 這是我到目前爲止有:如何測試一個整數序列是否是隨機生成的?
public static void main(String[] args) {
Random r = new Random();
int[] sequence = { r.nextInt(), r.nextInt(), r.nextInt() };
System.out.println(isRandomSequence(sequence));
}
public static boolean isRandomSequence(int[] sequence) {
for (long seed = 0; seed < Long.MAX_VALUE; ++seed) {
Random r = new Random(seed);
long tries = 0;
for (int i = 0; tries < Long.MAX_VALUE; ++tries) {
if (sequence[i] == r.nextInt()) {
if (++i == sequence.length) return true;
} else {
i = 0;
}
}
}
return false;
}
編輯:澄清;我想知道,例如序列{4,5,6}是否由隨機數生成器生成。對於將測試限制在java.util.Random中的初學者來說(如果可能的話,將會有很好的通用解決方案)。
你能更具體地說'它不工作'嗎? –
你能爲我們定義你的可接受的隨機性度量嗎? – nwaltham
你意識到內循環的主體將被執行85070591730234615847396907784232501249(〜8.5e37)次? – NPE