BlogHide Resteemsbaiyunping333 (25)in cn • 7 years agohash函数为什么要选择对素数求余常用的hash函数是选一个数m取模(余数),这个数在课本中推荐m是素数, 但是经常见到选择m=2^n,因为对2^n求余数更快,并认为在key分布均匀的情况下, key%m也是在[0,m-1]区间均匀分布的。但实际上,key%m的分布同m是有关的。 证明如下: key%m = key - xm,即key减掉m的某个倍数x,剩下比m小的部分就是key除以m的余数。…