散列算法将特定数量的数字放入固定数量的桶中

问题描述 投票:0回答:1

我想将10个基数10位(0到9,999,999,999)塞进6个十六进制数字(00 00 00到FF FF FF)。我知道会有碰撞,那很好。我也不需要担心单独的链条来容纳冲突。此外,我不需要将哈希转换回原始链接。只需要设置一定数量的桶(3个字节中的6个十六进制数字),可以表示为00 00 00到FF FF FF。所以是的,在0到9,999,999,999之间会有许多数字映射到那些桶......那很好。

有没有人知道这样做的好算法,或者Java / Kotlin中的包?

java hash hashcode
1个回答
3
投票

最简单的方法是简单地在基数10上使用mod

base_var_value % 16777215

这个16M的数字只是十六进制的FF FF FF

© www.soinside.com 2019 - 2024. All rights reserved.