2013-03-27 49 views
0

在解決哈希碰撞的二次探測方法中,H(k)= h(k)+ c1 * i^2 + c2 * i。二次探測

我需要一些幫助搞清楚如何確定C1值& C2那就是如何確保哈希表中的所有插槽都訪問。

回答

0

讓ht_size =散列表槽的數量。我假設你的意思

h(k) + c1*i^2 + c2*i % ht_size 

C1 = 0和C2 = 1將工作;)

C1 = 0和C2互質數,也ht_size工作。 1是任何數字的共素。如果ht_size不是偶然的素數,那麼素數也是很好的選擇。

爲什麼這樣的設置訪問所有插槽? 如果c1 = 0且c2與ht_size互質,則ggt(c2,ht_size)== 1.換句話說,在組(代數羣論)中,c2是一個生成器。 這意味着c2**i將生成從0到ht_size的所有數字-1。 **我的意思是功率運算符,即將組的運算符應用i次。該組的運營商是+,因此c2**i在組理論符號中對應於c2*i以正常表示法。

我希望這給了你一些想法如何開始搜索的C1組合和c2其中c1!= 0