难以理解“公因如何增加冲突”

时间:2019-04-20 13:48:18

标签: hash primes hash-collision

首先,我不知道问这样的问题是否合适,请原谅。

我正在读an answer to the question “Why should hash functions use a prime number modulus?”,在那个答案中,它说:

  

事实证明,“由于数学的本质”,如果哈希中使用的常量和存储区的数量是互质的,那么在某些常见情况下,冲突会最小化。如果它们不是互质的,则输入之间存在一些相当简单的关系,对于这些输入,不会使冲突最小化。 所有散列的模数均等于公因数,这意味着它们将落入具有该模数的模数的1 / n的桶。您得到的碰撞次数是n倍,其中n是公因子。由于n至少为2,我想说一个相当简单的用例产生的碰撞至少是正常情况的两倍是不可接受的。如果某些用户要将我们的分布分成多个存储桶,我们希望它是一个怪胎事故,而不是一些简单的可预测用法。

我已经读过a comment below the answer,但是我仍然不太明白以下句子:

  • 所有散列的模数均等于公因数,这意味着它们将落入具有该值模数的桶的1 / n。
  • 碰撞次数是n倍,其中n是公因子。

有人可以详细解释并举一个例子吗?以及“公因数”如何增加碰撞?预先感谢。

0 个答案:

没有答案