【发布时间】:2020-09-06 04:01:01
【问题描述】:
我正在解决这个问题:
你有一个大小为 100 的散列表。需要散列到散列表中的最少元素数是多少,以保证至少 11 个元素具有相同的散列值,而与散列函数无关?
在我看来,它应该是 111,因为存在 100 个可能的唯一哈希值;如果保证其中 11 个具有相同的哈希值,那么它应该是 100 + 11 = 111。
但是,给出的答案是 1001。
我的答案正确吗?如果没有,为什么不呢?
【问题讨论】:
我正在解决这个问题:
你有一个大小为 100 的散列表。需要散列到散列表中的最少元素数是多少,以保证至少 11 个元素具有相同的散列值,而与散列函数无关?
在我看来,它应该是 111,因为存在 100 个可能的唯一哈希值;如果保证其中 11 个具有相同的哈希值,那么它应该是 100 + 11 = 111。
但是,给出的答案是 1001。
我的答案正确吗?如果没有,为什么不呢?
【问题讨论】:
想象一下,您的哈希表拥有世界上最愚蠢的哈希函数,只需获取输入并将其修改 100。
现在,将元素 1、2、3、...、111 插入表中。 100 个插槽中的每个插槽有多少个元素?
要查看 1001 的来源,请以不同的方式思考这个问题。你可以在一个哈希表中塞入多少元素,使得每个槽的元素少于 11 个?再添加一个元素将强制某个插槽有 11 个元素。
【讨论】: