在项目设计伏地魔页:在Voldemort中,为什么散列环只扩展到2^31-1?
http://project-voldemort.com/design.php
据说,散列环覆盖所述区间[0,2^31-1]。
现在,区间[0,2^31-1]代表2^31个总数,而最大数量2^31-1只有31个位全部设为1.(为了说服自己,考虑一下2^3-1.2^3 = 8并且是0x1000.2^3-1 = 7并且是0x111)。因此,如果使用普通的32位地址字来存储该值,则有1位空闲。
因此,为什么是2^31-1的上限?这是多少位用于某种系统簿记?
(例如,1个额外位将为安全地添加两个有效散列地址而没有溢出提供空间)。
最后,这是voldemort特有的选择,还是在其他一致的哈希方案中看到?
感谢您赶上我的错误!我制定了一个简单的例子来防止再犯这个错误。 –
我还添加了一个关于添加的猜想。加法和否定在某些算术运算中可能是有用的。 –