【问题标题】:Hashing Elements by Mid-Square按中方散列元素
【发布时间】:2016-05-19 15:17:07
【问题描述】:

我正在为大小为 10(索引 0-9)的哈希表制作哈希函数,并使用中方方法对元素进行哈希处理。 问题是我很困惑我应该使用 1 个中间数字还是 2 个数字然后取模 10。 问题是如果我选择取 2 个中间数字然后取 mod 10,如果平方数有 3 个数字,此方法将失败。那我会取哪两个数字? 如果我选择有 1 个中间数字,那么当平方数有偶数位数时,我将无法取中间数字。我知道在这种情况下,中间两个元素都是由原始数字的所有元素的贡献组成的。 现在,我将使用第 {floor(n/2+1)} 个数字。这种方式适用于三位数的平方数,并且当平方数有偶数时。位数,它取中间两位的后一位。 我想知道这样做更有效的方法是什么? 谢谢。

【问题讨论】:

  • 你的做法是合理的。假设平方数有数字A B C D,说取“C D”是没有意义的,因为% 10之后你反正只有D,所以直接取。如果有奇数位,请清楚地使用中间一位。

标签: data-structures hash hashtable


【解决方案1】:

我被告知,中间平方散列的正确方法是,如果结果平方的长度是奇数,则使用 1 位,如果是偶数,则使用中间 2 位。

【讨论】:

    猜你喜欢
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2013-12-30
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多