【发布时间】:2012-10-22 17:06:35
【问题描述】:
在 CLRS 的第 264 页底部,作者说在获得r0 = 17612864 后,r0 的 14 个最高有效位产生哈希值h(k) = 67。我不明白为什么它给出 67,因为二进制中的 67 是 1000011,即 7 位。
编辑
教科书中:
例如,假设我们有k = 123456, p = 14, m = 2^14 = 16384, and w = 32。采用 Knuth 的建议,我们选择 A 作为s/2^32 形式中最接近(\sqrt(5) - 1) / 2 的分数,因此A = 2654435769/2^32。然后是k*s = 327706022297664 = (76300 * 2^32) + 17612864,然后是r1 = 76300 and r0 = 17612864。 r0 的 14 个最高有效位产生值 h(k)=67。
【问题讨论】:
-
我不知道这有多大可能,但在这里包括更多的上下文而不是书上的页码可能有助于找到可以回答您问题的人。
-
看图11.4(页首264),
w是32,你从32位的左边(最高位)提取p(14)位号码。 -
谢谢!现在我可以理解这个数字了。
标签: algorithm computation-theory clrs