哈希表大小和密钥的重要位

时间:2012-04-27 22:30:37

标签: hash hashtable modulo

我有一个关于哈希表大小和模块化哈希的问题。我所指的散列算法如下: hash_key%table_size = array_index。 我正在阅读算法教科书,其中给出了以下建议:

如果表大小不是素数,则可能是键的所有位在确定array_index时不起作用的情况。

任何人都可以通过一个例子来解释这意味着什么吗?

1 个答案:

答案 0 :(得分:4)

您想要避免的是常见因素。有一个定理表明每个数字都可以表示为素数的乘积。

因此,如果你有素数作为mod。您不会在该部门中分享任何因素。

说A%30,所以2,3和5中的任何倍数将分享该除法中的因子,并且该因子在该除法中将是无用的。

250/30 = 50/6 = 25/3

您希望尽量减少无用因素。