【问题标题】:how to prove that the hash function h(x) = x² mod 4 yields only to 0 and 1如何证明哈希函数 h(x) = x² mod 4 只产生 0 和 1
【发布时间】:2018-03-23 00:01:45
【问题描述】:

我如何证明散列函数h(x) = x² mod 4 只产生{0, 1},其中 x 作为自然数的一个元素?

【问题讨论】:

    标签: hash hashtable


    【解决方案1】:

    让我们先介绍偶数,2n(其中n 是自然数):

    (2n)2 = (2n)(2n) = (2)(n)(2)(n) = (2)(2)(n)(n) = 4n2 = 4(n2)

    这是四的精确倍数,因此除以四时的余数总是为零。


    现在让我们讨论奇数,2n + 1

    (2n + 1)2 = (2n + 1)(2n + 1) = (2n)(2n) + (2n)(1) + (1)(2n) + (1)(1) = 4n2 + 2n + 2n + 1 = 4n2 + 4n + 1 = 4(n2 + n) + 1

    这正好比四的倍数多一,因此除以四时的余数总是为一。


    现在,让我们看看任何既不是偶数也不是奇数的自然数。

    等一下,没有。我想这意味着我们已经完成了:-)


    而且,在有人指出某些语言在参数为负时可能会给出 余数之前,这实际上并不适用于这里,因为自然数的平方永远不可能 否定的。

    【讨论】:

    • 您可以将 0、1、2 和 3 平方模 4 并看到结果是 0、1、0 和 1。
    • @James,这不是一个证明,因为它只适用于集合{0, 1, 2, 3},而不是所有自然数的集合。如果表达式涉及 (x mod 4)^2 而不是 (x^2) mod 4,那么您所说的将是正确的 - 证明需要在函数的 整个 域中详尽无遗(如果您有额外的信息来解释 为什么你只需要为那些数字展示它,这真的应该是你证明的一部分)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多