Hash 在这种特殊情况下,key mod TableSize是一个好的散列函数吗

Hash 在这种特殊情况下,key mod TableSize是一个好的散列函数吗,hash,hashtable,Hash,Hashtable,如果用户正在设计哈希表,并且知道所有键都是0到10000之间的4的倍数,并且分布均匀。下面的散列函数好吗 hash(key) = key mod TableSize 其中TableSize是一些素数 我的直觉是这个函数有很大的缺陷,因为只有1/4的可能键实际出现。但当我运行测试时,散列值的分布几乎是均匀的 我遗漏了什么吗?如果键是4的倍数,那么它们实际上是随机的。顺便说一句,在放入哈希表之前,为什么不将每个键除以4(>2){int i=0;int taille=67;int*tab=new i

如果用户正在设计哈希表,并且知道所有键都是0到10000之间的4的倍数,并且分布均匀。下面的散列函数好吗

hash(key) = key mod TableSize
其中TableSize是一些素数

我的直觉是这个函数有很大的缺陷,因为只有1/4的可能键实际出现。但当我运行测试时,散列值的分布几乎是均匀的


我遗漏了什么吗?

如果键是4的倍数,那么它们实际上是随机的。顺便说一句,在放入哈希表之前,为什么不将每个键除以4(
>2
){int i=0;int taille=67;int*tab=new int[taille];for(i=0;i