在准备考试时,我遇到了一个关于哈希表的问题。 我得到一个长度为11的表,其中包含以下哈希函数:
h(k,i) = ( k mod 13 + i * (1 + k mod 7) ) mod 11
然后将哈希表的大小调整为大小12.因此新的哈希函数变为:
h'(k,i) = ( k mod 13 + i * (1 + k mod 7) ) mod 12
出现了哪些问题?
答案 0 :(得分:0)
问题是哈希函数变得更糟。
在第一种情况下,k
和i
的不同组合的分布在11个哈希箱中非常均匀。在第二种情况下,分布不是那么均匀 - 特别是,散列函数的结果为k
的{{1}}和i
的组合数量明显更高。
当然,在考试期间,人们可能不得不争论为什么就是这样。它与
有某种关系但是(至少对我而言)很难找到超越这些琐碎见解的令人信服的推理。也许你有另一个基于此的想法。
0