什么散列函数在对 n 个键进行散列时产生最大碰撞次数?

What hash function produces the maximum number of collisions when hashing n keys?

我的问题与碰撞有关。散列 n 个键可能导致的最大冲突次数是多少?我相信你可以通过n-1找到它。但我不确定这是否正确。我特别想找出一个会产生那么多冲突的哈希函数。我只是很难理解这个问题的概念。任何有关该主题的帮助将不胜感激!

最大碰撞次数等于您散列的项目数。


示例:

哈希函数:h(x) = 3

所有项目都将散列到键 3。


请注意,钥匙的数量(在您的情况下为 n)不会影响答案,因为无论您拥有多少钥匙,您的项目总是 将在密钥 3 中使用我上面提供的 h(x) 进行哈希处理。


可视化:

通常,散列看起来像这样:

但是如果我想有最大的碰撞次数,那么,通过使用上面提供的 h(x),我将得到我所有的项目(图片中的名称)都散列到不同的相同键,即键 3.

所以在那种情况下,最大冲突次数是名称的数量,5。

统一哈希中的最大预期冲突次数为 $$O(\frac{log(n)}{loglog(n)})$$