我正在阅读CLRS,因为我遇到了这一行"我们可以预期虚假命中的数量是O(n / q),因为任意ts将等于p的几率,模数q,可估计为1 / q。"
我正在将包含完整描述的网站放在34.2主题下
请解释我们如何预期虚假命中= O(n / q)
供参考http://staff.ustc.edu.cn/~csli/graduate/algorithms/book6/chap34.htm
答案 0 :(得分:0)
出于分析的目的,通常假设使用的哈希函数是Simple Uniform Hashing
。该假设表明,每个键都可以被散列到,而与其他键的散列方式无关。
换句话说,给定哈希函数可以生成的q
个值,每个值的概率为1/q
。
在您链接到的示例中,当两个不同的字符串散列到相同的值时,他们会讨论虚假命中方案。在简单统一哈希的情况下,此事件的概率是多少?
第一个字符串被散列为值x
。第二个字符串也被散列到值x
的概率是多少?它是1/q
。
我推荐this lecture,它讨论了Karp-Rabin算法。