素數可以有效的減少hash沖突
設Hash表大小為size,並且size是一個合數,即size = a * n。當關鍵字key = b * n時,他們有公因子n。
有Hash公式:
hashcode = key%size = key - (key / size) * size = key - (b/a) * size
因為a和size都是不變的,所以hashcode只有b種可能,這樣顯然會增加沖突的概率。所以當一個關鍵字集合里的所有關鍵字都與Hash表大小有公因數n時,那么hashcode只有key/n種可能。
