有没有更好的方法来计算这种概率



所以我一直在想,在一群人中,至少有一个人今天过生日的可能性有多大。

我想出了一个这样的解决方案:

private BigDecimal probability(BigDecimal peopleCount) {
BigDecimal days = new BigDecimal("365");
BigDecimal omega = days.pow(peopleCount.intValue());
BigDecimal excluded = days.subtract(BigDecimal.ONE).pow(peopleCount.intValue());
return omega.subtract(excluded).divide(omega, 10, RoundingMode.HALF_UP);
}

这似乎是正确的计算,但看起来也是一个糟糕的解决方案——对于1000人,我需要计算365^1000(一些疯狂的数字(。

有人知道更好(更干净(的方法吗?

谢谢。

至少有一个人过生日的概率是1.0减去没有人过生日的可能性。

问题是一个人没有过生日,或者364/365=a.

所有1000个没有的问题(等于没有人有(是每个加在一起的问题=a^1000。

答案是1.0-(364/365(^1000。

如果我们把2月29日的闰年和其他通常是闰年的非闰年计算在内,我们会得到一个接近365.25的精细调整数字,但并不准确。这可能是分母。

最新更新