在項目設計伏地魔頁:在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特有的選擇,還是在其他一致的哈希方案中看到?
感謝您趕上我的錯誤!我制定了一個簡單的例子來防止再犯這個錯誤。 –
我還添加了一個關於添加的猜想。加法和否定在某些算術運算中可能是有用的。 –