【发布时间】:2011-12-17 16:31:12
【问题描述】:
我正在寻找一种哈希算法,当给定一个 64 位的顺序值时,它会均匀地哈希到 8 位。
我不想只使用最低有效字节作为哈希值。
【问题讨论】:
-
“顺序值”是什么意思?你的意思是你实际上只是依次得到序列“0 1 2 3 4 5...”,并且你想将这些序列中的每一个散列为一个 8 位值?
-
校验位合适吗?比如MOD 10?
-
是的。它们是 64 位自动编号数据库主键。序列可能不是从 0 开始,但无论起始值是多少,序列对于每个后续值都是 +1。
-
为什么你不想使用最低有效字节?如果你要拒绝最明显的方法,你应该解释它有什么不受欢迎的地方。
-
同意。如果数字是连续的,那么只需取低字节即可将哈希冲突的数量保持在最低限度,那为什么不想要呢?