【问题标题】:Confusion about calculating right Hash size关于计算正确哈希大小的困惑
【发布时间】:2011-06-27 10:29:59
【问题描述】:

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

谢谢!

【问题讨论】:

    标签: hashtable hash


    【解决方案1】:

    Wikipedia 说得最好:

    散列函数是将可变长度大型数据集(称为键)映射到固定长度的较小数据集的任何算法或子程序强>。

    听起来这不是你想要做的。听起来您正在尝试将 32 位键映射到 32 位值。散列函数有许多可能的用途。您所描述的似乎不是散列函数的理想用例。

    【讨论】:

      猜你喜欢
      • 2017-01-30
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      • 1970-01-01
      • 2010-10-19
      • 2021-11-28
      相关资源
      最近更新 更多