标签: math hash
如果M是素数,如何选择a和b来减少碰撞?
同样在书中写道,为了在(f(k)+ j ^ 2)%M中进行二次探测时找到空槽,哈希表必须至少为半空?有人能为我提供证明吗?
答案 0 :(得分:2)
在wikipedia上选择a和b有一些值:
对于素数M>如图2所示,a和b的大多数选择将使f(k,j)在[0,(M-1)/ 2]中与j不同。这样的选择包括a = b = 1/2,a = b = 1,a = 0,b = 1.因为给定元素只有大约M / 2个不同的探针,所以很难保证插入成功当负载系数> 1/2。
保证查找空广告位的证明是here或here。