Rabin Karp 算法中的 Spurious Hits 如何等于 O (n/q)?
How Spurious Hits in Rabin Karp algorithm equal to O (n/q)?
我正在阅读 CLRS,因为我看到了这一行 "We can then expect that the number of spurious hits is O(n/q), since the chance that an arbitrary ts will be equivalent to p, modulo q, can be estimated as 1/q."
我将包含完整描述的网站放在 34.2 主题下
请解释我们如何预测虚假命中 = O (n/q)
供参考http://staff.ustc.edu.cn/~csli/graduate/algorithms/book6/chap34.htm
为了分析的目的,通常假设使用的散列函数是Simple Uniform Hashing
。该假设表明每个键被散列的可能性相同,而与其他键的散列方式无关。
换句话说,给定 q
个哈希函数可以产生的可能值,每个值的概率为 1/q
。
在您链接的示例中,他们讨论了 spurious hit 场景,当两个 different 字符串散列为相同的值时。给定一个简单的统一哈希,这个事件的概率是多少?
第一个字符串被散列为值 x
。第二个字符串也被散列为值 x
的概率是多少?这是 1/q
.
我推荐this lecture,里面讨论了Karp-Rabin算法
我正在阅读 CLRS,因为我看到了这一行 "We can then expect that the number of spurious hits is O(n/q), since the chance that an arbitrary ts will be equivalent to p, modulo q, can be estimated as 1/q."
我将包含完整描述的网站放在 34.2 主题下
请解释我们如何预测虚假命中 = O (n/q)
供参考http://staff.ustc.edu.cn/~csli/graduate/algorithms/book6/chap34.htm
为了分析的目的,通常假设使用的散列函数是Simple Uniform Hashing
。该假设表明每个键被散列的可能性相同,而与其他键的散列方式无关。
换句话说,给定 q
个哈希函数可以产生的可能值,每个值的概率为 1/q
。
在您链接的示例中,他们讨论了 spurious hit 场景,当两个 different 字符串散列为相同的值时。给定一个简单的统一哈希,这个事件的概率是多少?
第一个字符串被散列为值 x
。第二个字符串也被散列为值 x
的概率是多少?这是 1/q
.
我推荐this lecture,里面讨论了Karp-Rabin算法