Data structures 散列除法中除数的选择

Data structures 散列除法中除数的选择,data-structures,hash,language-agnostic,Data Structures,Hash,Language Agnostic,根据CLRS 对于m来说,一个不太接近2的精确幂的素数通常是一个很好的选择 通过除法计算哈希值时,其中哈希函数为: h(k) = k mod m 虽然不选择m作为2的幂是有道理的,但m与2的精确幂的距离如何影响哈希?值得一试,看看不同m值的冲突率。我想你会很快发现原因的。可能是相关的?如练习11.3-3所示,当k是以基数2^p解释的字符串时,选择m=2^p-1可能是一个糟糕的选择,因为排列k的字符不会改变其哈希值

根据CLRS

对于m来说,一个不太接近2的精确幂的素数通常是一个很好的选择

通过除法计算哈希值时,其中哈希函数为:

h(k) = k mod m

虽然不选择m作为2的幂是有道理的,但m与2的精确幂的距离如何影响哈希?

值得一试,看看不同
m
值的冲突率。我想你会很快发现原因的。可能是相关的?如练习11.3-3所示,当k是以基数2^p解释的字符串时,选择m=2^p-1可能是一个糟糕的选择,因为排列k的字符不会改变其哈希值