0
我正在阅读有关中心哈希方法的中间方法。哈希中间方法
http://www.brpreiss.com/books/opus4/html/page212.html
这里笔者提到,其中有大量的前导零的钥匙将发生碰撞。
类似的推理适用于具有大量尾随零的键。
请求给出一个例子和解释作者在上述两个语句中的含义。
我正在阅读有关中心哈希方法的中间方法。哈希中间方法
http://www.brpreiss.com/books/opus4/html/page212.html
这里笔者提到,其中有大量的前导零的钥匙将发生碰撞。
类似的推理适用于具有大量尾随零的键。
请求给出一个例子和解释作者在上述两个语句中的含义。
如方法所述,钥匙x
除以2^(w-k)
。在位级这实际上意味着x
的位被右移(w-k)
。
现在采取一种情况,其中x = 7
,(w-k) = 3
。所以x = 00000111
和意味着x = 00000000
将这些位向右移。
现在,你会注意到,对于x
从7 (00000111) to 0 (00000000)
的所有值,位移将导致00000000
(将位右移总是将0附加到左侧)。因此具有大量前导0(7到0)的值将碰撞到相同的散列。
感谢您的澄清。我对上面的解释x有2 ^(w-k)的分歧,我认为我们是右移不左移。问题在于作者如何精确确定中间数字,是如何将x * x >>(w-k)给予中间数字 – venkysmarty 2014-09-23 10:34:46
我的错误,这些数字正在向右移动。最终会在左边追加0。 @venkysmarty – Haris 2014-09-23 10:36:16
见。采取不同的例子。 'x = 8(00000100)'不用2 ^(w-k)除以2将得到散列值'00000001'。从'x = 8'我们得到'0001',这是'x'的中间位。 @venkysmarty – Haris 2014-09-23 10:40:22