3
請考慮這一段代碼:爪哇的範圍隨機相交:意想不到的結果
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)600倍生成隨機INT,天真地期待有0 %交集。實際結果是〜37%。
是否有計算交集概率的數學公式,具有隨機整數範圍和調用次數?在我的計算中,我不太相信這個經驗性的37%
由於Java的Random具有均勻的分佈,所以您應該預計交點在600中爲1。 – Boschi
爲什麼你期望有0%的交集?如果你擲骰子6次,你是否期望每次擲出一次?我希望至少推出一些數字兩次,有些數字根本沒有。 – Socowi