关于计算正确哈希大小的困惑

时间:2011-06-27 10:29:59

标签: hashtable hash

我对选择正确的哈希大小感到有点困惑。比方说,如果我想散列2 ^ 32值,是否可以使用32位的散列大小?它会导致更多的碰撞吗?我在某处读到了关于平方根的规则。理想情况下我应该选择64位散列大小吗?但是,这并不意味着存储哈希表所需的空间将用于存储2 ^ 64个值。 这是令我困惑的部分。根据定义散列是减少密钥空间,但如果我在膨胀的2 ^ 64值空间中存储2 ^ 32个值...这听起来不对。我正在增加键空间。我想我误解了一些事情......任何帮助澄清这一点都会非常感激。

谢谢!

1 个答案:

答案 0 :(得分:1)

Wikipedia说得最好:

  

哈希函数是将可变长度大数据集(称为密钥)映射到固定长度的较小数据集的任何算法或子例程

这听起来并不像你想要做的那样。听起来你正试图将32位密钥映射到32位值。散列函数有许多可能的用途。您所描述的内容似乎不是哈希函数的理想用例。