【发布时间】:2014-12-04 21:58:02
【问题描述】:
在二选散列(带链接)中,选择两个随机散列函数 h1、h2 将 n 个键散列到 m 个位置。流程是这样的:
依次插入所有 n 个键,方法是为每个键 x 计算两个哈希函数,并将该键添加到由 h1(x)、h2(x) 索引的较短列表中。令 Y 为 (x, x') 对的数量,使得它们最终出现在同一个链表中。 Y(E[Y]) 的期望是什么?
假设 h1、h2 哈希键一致且独立
【问题讨论】:
-
这个问题似乎跑题了,因为它是关于数学的。
-
但它是关于随机算法的
-
@KarolyHorvath:并不是说你做错了事,但这是一个数学问题,是一个重要的编程问题的核心。该编程问题的低级细节是完全指定的。 (当然,对于这类事情,cs.stackexchange.com 也可以工作,可能更好。)
-
话虽如此,我不知道如何分析。 Cuckoo hashing 有一个很好的分析,因为在 cuckoo 失败的情况和具有 m 个顶点和 n 个包含循环的边的随机图之间有一个自然的类比。可能有一个花哨的技巧,您可以在这里找到 bin 大小分布的某些参数的不变量,但我不明白它是什么。