【发布时间】:2018-03-10 00:22:55
【问题描述】:
最好有两个哈希函数,每个结果为 n/2 位,或者有一个哈希函数,最终结果为 n 位。我们甚至可以做出一般性的陈述吗,或者性能完全取决于用例:我要散列的字符串类型。
示例:假设我正在散列可能很长 (10^5) 的普通字符串, 使用两种方法检查碰撞:
- 使用两个哈希函数 h1(x) 和 h2(x),结果是两个 int 类型,并分别比较它们以猜测相等性。
- 使用单个哈希函数,结果为 long int。
哪一种方法比另一种更好(碰撞概率低)?
【问题讨论】:
-
如何定义“更好”?碰撞概率低?计算速度?或者对您来说重要的属性是什么?哈希函数有什么用?创建哈希表?检查文档是否相等?
标签: string algorithm data-structures hash