hash表大小使用質數的緣由


素數能夠有效的減小hash衝突spa

假設hash表大小爲size,這是一個合數,即有size=a*n。當有hash值爲hashcode,且hashcode = b*n.
則hashcode取模以後爲
code

hashcode = hashcode%size = hashcode - (hashcode / size) * size = hashcode - (b/a) * size

由於a是固定的,那麼上面的hashcode的取值只有b種可能,這樣顯然會增長衝突的機率。
orm

相關文章
相關標籤/搜索