Hash 完美的哈希表

Hash 完美的哈希表,hash,hashmap,hashtable,hash-function,Hash,Hashmap,Hashtable,Hash Function,我正在寻找一个hashfunction,它利用了以下要求: N个不同的整数值将存储在哈希表中 在任何给定的时间点,哈希表中出现的值不超过M Hashtable在几个查询中保持静态(即,在某个点上,整个Hashtable将被初始化,以下调用仅从Hashtable读取) 哈希表初始化时已知最大可能键值K(K>>N) 每个查询的键值对都存在于哈希表中 到目前为止,我使用的哈希函数如下: h(k)=7*k%M M=PRIME_接近(7*N) 7有点武断 您对如何改进这一点有什么建议吗?这是一个起点:

我正在寻找一个hashfunction,它利用了以下要求:

  • N个不同的整数值将存储在哈希表中
  • 在任何给定的时间点,哈希表中出现的值不超过M
  • Hashtable在几个查询中保持静态(即,在某个点上,整个Hashtable将被初始化,以下调用仅从Hashtable读取)
  • 哈希表初始化时已知最大可能键值K(K>>N)
  • 每个查询的键值对都存在于哈希表中
到目前为止,我使用的哈希函数如下: h(k)=7*k%M M=PRIME_接近(7*N)

7有点武断


您对如何改进这一点有什么建议吗?

这是一个起点:


实际上,任何普通的散列函数都可以。但是,如果出于某种原因需要一个最小的完美散列,您可以查看一个执行完美散列的库,例如:

这是一个起点:

实际上,任何普通的散列函数都可以。但如果出于某种原因需要最小完美散列,则可以查看执行完美散列的库,例如: