我想要一个哈希范围(md5或sha1)并将其分成n个相等的范围.
例如,如果m(num节点)= 5,则整个散列范围将被分割为5,以便存在关键范围的均匀分布.我想n = 1(节点1)从哈希范围的开头到1/5,2从1/5到2/5等一直到结束.
基本上,我需要将键范围映射到每个n,这样当我散列一个值时,它知道哪个n将负责该范围.
我是哈希的新手,有点不确定我可以从哪里开始为项目解决这个问题.你能给予的任何帮助都会很棒.
如果你能忍受一点点很难消除偏差(任何 2 的幂都不可能被 5 整除,所以必须有一些偏差),那么模(%
在 C 和许多其他具有类似 C 语法的语言中)就是将整个范围划分为 5 个几乎相同大小的分区的方法。
m
任何带有 的消息md5(m)%5==0
都在第一个分区中,等等。
归档时间: |
|
查看次数: |
1668 次 |
最近记录: |