2015-09-09 53 views
-1

因此,散列时碰撞的最大次数n键将N - 1,因为在开始插入散列表时将是空的。N-1冲突的散列函数?

我的问题是,有没有一个哈希函数产生这个数量的碰撞?

+8

当然。 int hashcode(){return 0;}' –

+0

(或者返回相同值的任何哈希'函数';考虑如果*输入被使用,那么它不会完全依赖哈希函数,而且数据 - 这是随机的/未知的。) – user2864740

+0

@tobias_k您的评论完全,正确和独特(达到一定的偏移量)可以确定问题的答案。你应该让它成为答案,获得upvotes,并选择它作为答案。 – Patrick87

回答

5

为了生产n-1碰撞为n对象中,散列函数将不得不为每个n对象的返回的值完全相同,或者更一般地:对于任何对象相同的值。

因此,创建这种散列函数的一种非常简单的方法是只返回一些常数值。

public int hashCode() { 
    return 0; 
} 

当然,您可以返回任何值,而不只是0,只要它是任何对象的相同值。