【发布时间】:2010-04-21 20:32:01
【问题描述】:
是否可以为具有特定属性的数据结构创建无冲突哈希函数。
- 数据结构为int[][][]
- 它不包含重复项
- 定义了其中包含的整数范围。假设是0..1000,最大整数肯定不大于10000。
最大的问题是这个哈希函数也应该非常快。 有没有办法创建这样的哈希函数?也许在运行时取决于整数范围?
补充:我应该说这个散列函数的目的是快速检查特定组合是否被处理。所以当处理数据结构中的一些数字组合时,我计算哈希值并存储它。然后,当处理数据结构中的另一种数字组合时,我将比较哈希值。
【问题讨论】:
-
哈希大小是多少?你想要一个好的分布吗?
-
@Slaks 目前我使用的是 32 位哈希值,但我可以使用任何效果最好的,64 位甚至 128。@ Henk Holterman 大多数时候这个立方体将包含来自范围 [0..1000]。第一个维度的典型维度大小为 1 到 100,第二个维度为 1 到 100,第三个维度为 1 到 10。
-
好吧,你不能真正创建一个无冲突的哈希函数,因为你有超过 2^32 种可能包含在你的数组中的内容。
标签: algorithm data-structures hash-function