题目:
生日悖论问的是,当一个房间里有多少人时,其中两个人生日(月和日)相同的概率大于1/2?这个问题的答案十分出人意料,请试着求解。对于散列来说,这个结论意味着什么?
分析:
这道题其实很有意思,一开始我想到的是抽屉原则,那应该是大于365(假设一年365天)就会大于1/2,但是看了答案后,才知道结果不是如此,下面是真正的答案分析。
n个人拥有不同生日的概率是:
而这个公式的值小于1/2的最大n值是23,下面是公式求解:
2边取对数,得
用ln(1-x)=-x,我们可得
答案:
当房间有23人时,概率就大于1/2,那么对于散列来说,即使我们的散列表的大小远大于键值的数量,我们也要考虑到冲突的情况。