散列数据结构

时间:2018-09-06 11:24:37

标签: data-structures hash collision chaining

考虑一个具有n个存储桶的哈希表,其中使用外部(溢出)链接来解决冲突。哈希函数使得键值被哈希到特定存储桶的概率为1 / n。哈希表最初是空的,并且在表中插入了K个不同的值。

  1. 插入第K个桶后,第1个存储桶为空的概率是多少?
  2. 在任何一个K中没有发生碰撞的概率是多少 插入?
  3. 第一次碰撞发生在第K次插入时的概率是多少?

1 个答案:

答案 0 :(得分:0)

  1. 在一次插入后存储桶1为空的概率为(n−1)/n。这就是第一项没有散列到存储桶1的可能性。两次插入后它为空的事件由“ {第一项丢失存储桶1”和“第二项丢失存储桶一个”” (n - 1) * (n - 1) / n * n定义。借此,我希望您可以计算出在K插入之后存储桶为空的可能性。

  2. 对于K = 1,它是1。对于K = 2,第二项必须错过第一项的存储桶。因此它有n − 1个可以放心的地方。因此,成功的概率为(n − 1) / n。那第三项呢?它只有n−2个地方可以去。因此,K = 3的概率为(n − 1) * (n - 2) / n * n。您可以概括。请注意K > n的情况。

  3. 一旦您确定了前两部分的细节,您就可以在这两个部分上取得进展。

    提示:如果(i)前k个插入未碰撞(请参见2)和(ii)第k−1个插入,则第一个碰撞发生在第k个确实会引起碰撞(请参见2的补码)。

让我知道您是否能找出所有三个答案。否则,我会详细介绍。