针对特定数据结构的无冲突哈希函数

Max*_*Max 3 algorithm hash-function data-structures

是否可以为具有特定属性的数据结构创建无冲突哈希函数.

  1. 数据结构是int [] [] []
  2. 它不包含重复项
  3. 定义了包含在其中的整数范围.假设它是0..1000,最大整数绝对不大于10000.

最大的问题是这个哈希函数也应该非常快.有没有办法创建这样的哈希函数?也许在运行时取决于整数范围?

附加:我应该说这个哈希函数的目的是要快速检查是否处理了特定的组合.因此,当处理数据结构中的某些数字组合时,我会计算哈希值并存储它.然后,当处理数据结构中的另一个数字组合时,我将比较散列值.

Syn*_*r0r 6

我认为你想要的是一个"完美的哈希",甚至是"最小的完美哈希":

http://en.wikipedia.org/wiki/Perfect_hash_function

编辑:那就是说,如果你确定并且肯定你永远不会超过[0 ... 1000]并且根据你需要做什么,你可能只是直接在数组中"结束"你的结果.如果你没有很多元素,那么该数组将是稀疏的(因此有点浪费),但最多1001个元素来自[0 ... 1000]一个Object [1001](或int [1001]或无论如何)可能会这样做.