【问题标题】:Associative noncommutative hash function关联非交换散列函数
【发布时间】:2022-04-11 13:48:01
【问题描述】:

是否存在具有以下属性的哈希函数?

  • 是关联的
  • 不可交换
  • 在 32 位整数上很容易实现:int32 hash(int32, int32)

如果我是正确的,这样的功能可以实现以下目标

  • 根据子字符串的哈希计算连接字符串的哈希
  • 同时计算哈希
  • 计算在二叉树上实现的列表的哈希值 - 包括顺序,但不包括树的平衡方式

到目前为止,我发现的最好的方法是 4x4 位矩阵的乘法,但实现起来很尴尬,并将空间减少到 16 位。

感谢您的帮助。

【问题讨论】:

    标签: hash


    【解决方案1】:

    Polynomial rolling hash 可以帮忙:

    • H(A1,...,An) = (H(A1,...,An-1) * Base + An) Mod P

    只要长度已知,连接两个结果或从结果中减去前缀/后缀很容易。

    【讨论】:

      猜你喜欢
      • 2013-07-19
      • 1970-01-01
      • 1970-01-01
      • 2019-12-18
      • 2015-08-22
      • 1970-01-01
      • 2016-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多