【问题标题】:Unable to understand the result of this hash function无法理解此哈希函数的结果
【发布时间】:2016-08-20 09:25:59
【问题描述】:

我正在阅读我的算法课上的notes(几年前),我发现了这个:

它说:假设

h(k) = k mod m,其中 m = 4 且 k = 100,则 h(k) = 4

这是真的吗?我认为 4 * 25 = 100,因此 h(k) = 0。我错过了什么?

我还以为是笔误,但我刚查了最新版的笔记,还是一样!

【问题讨论】:

  • 哈哈,我刚刚在学校完成了有限数学,这很粗糙,哈哈。基本上这是正在发生的事情:h(k) = k mod m :: h(k) = 100 mod 4 = 0(根据谷歌计算器)。好像这些注释是错误的。
  • 虽然4 = 0 mod 4,但似乎注释是错误的。是希腊语吗?可惜它不是俄语,我敢肯定那里会有一个“在苏联俄罗斯”的笑话......也许那不是一个耻辱......
  • @rackemup420 是的,我同意!!是的,这是希腊伪尘埃,对不起;p

标签: algorithm math hash hash-function mod


【解决方案1】:

模运算符永远不能返回该结果,因为它表示整数除法后的余数

所以这条规则适用于正整数 x 和 y:

x mod y = z  ⇒   z < y

上述取模运算的另一种写法是:

⎣x/y⎦.y + z = x

如果您能以某种方式实现z == y,那么显然您在⎣x/y⎦ 部分做错了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多