混淆计算双重哈希中的探测序列
Confusing about calculating the probe sequence in double hashing
我知道在双重哈希中,
h1(key) = key mod 11
h2(key) = 7 - (key mod 7)
h1
表示从位置h1(key)开始,h2
表示所采取的步长。
但我不知道如何解决探针序列。
例如,如果键是 14
。
你能解释一下为什么答案是 3,10,6,2,9,5,1,8,4,0
。
在您的示例中,table 的大小为 11(位置编号为 0 到 10)。 step的大小是当前位置加上的数字得到下一个位置(取模table的大小)。
h1 = 14 mod 11 = 3
h2 = 7 - (14 mod 7) = 7 - 0 = 7
因此,第一个位置,称之为 p
,是 3,如 h1
所给出的那样。每个后续位置 p'
由 --
给出
p' = (p + h2) mod table_size
对于这个例子,
p' = (p + 7) mod 11
所以,第二个位置是——
(3 + 7) mod 11 = 10 mod 11 = 10
第三个是--
(10 + 7) mod 11 = 17 mod 11 = 6
等等。
我知道在双重哈希中,
h1(key) = key mod 11
h2(key) = 7 - (key mod 7)
h1
表示从位置h1(key)开始,h2
表示所采取的步长。
但我不知道如何解决探针序列。
例如,如果键是 14
。
你能解释一下为什么答案是 3,10,6,2,9,5,1,8,4,0
。
在您的示例中,table 的大小为 11(位置编号为 0 到 10)。 step的大小是当前位置加上的数字得到下一个位置(取模table的大小)。
h1 = 14 mod 11 = 3
h2 = 7 - (14 mod 7) = 7 - 0 = 7
因此,第一个位置,称之为 p
,是 3,如 h1
所给出的那样。每个后续位置 p'
由 --
p' = (p + h2) mod table_size
对于这个例子,
p' = (p + 7) mod 11
所以,第二个位置是——
(3 + 7) mod 11 = 10 mod 11 = 10
第三个是--
(10 + 7) mod 11 = 17 mod 11 = 6
等等。