【发布时间】:2013-05-05 23:24:07
【问题描述】:
您好,谁能推荐一个 hash 函数来获取整数列表并返回一个新的integer?
它应该快速评估并且或多或少地抗碰撞。
我打算在近似搜索算法中使用它(例如 LSH)
Java 的hashCode() 列表使用以下公式:
31 + SUM 31^(i+1) *a[i]
有人知道为什么它具有碰撞抗性吗?我猜大概是 31 是素数,但不知道如何证明。
【问题讨论】:
-
您想搜索关于哈希的单词“avalanche”。这是最常用于抗碰撞的术语。从这里开始:eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx
标签: java algorithm hash cryptography