3
コードのこの部分を考慮してください:Javaのランダム交差点:予期しない結果
private static final Random RANDOM = new Random();
public static void main(String[] args) {
long distinct = IntStream.range(0, 600)
.map(i -> RANDOM.nextInt(600))
.distinct()
.count();
System.out.println("intersection %:" + (double) (600 - distinct)/600 * 100);
}
私は単純に0を持っていることを期待し、600回(0〜600)の範囲内のランダムな整数を生成しています%交差点。実際の結果は〜37%です。
ランダム確率の範囲と呼び出し回数を持つ交差確率を計算する数式がありますか?私は実際に私の計算でこの経験的な37%を信頼したくはありません
Javaのランダムに一様分布があるので、600で交差が1になるはずです。 – Boschi
なぜ0%の交点があると思いますか?あなたがサイコロを6回転がした場合、各数字を正確に1回転がすと思いますか?私はいくつかの数字を少なくとも2回、いくつかの数字をまったく使っていないと予想します。 – Socowi