请考虑以下代码:
我正在生成600次(0-600)范围内的随机整数,天真地期望没有重复。实际结果约为37%。
是否有一种数学公式可以计算交集概率,具有随机整数范围和调用次数?我不想只依靠这个经验值37%进行计算。
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);
}
我正在生成600次(0-600)范围内的随机整数,天真地期望没有重复。实际结果约为37%。
是否有一种数学公式可以计算交集概率,具有随机整数范围和调用次数?我不想只依靠这个经验值37%进行计算。