2016-11-23 7 views
0

私はここで二重ハッシュ約宿題を持っていると私は一点に積み重ねる:ダブルハッシュ - ハッシュテーブル範囲外HashValues

Iは、配列を有する:17、6、5、8、11、28、14、15 h2(k)= k mod 11、 h2(k)= 1 +(k mod 9)、 ハッシュテーブルのサイズ= 11 これからのダブルハッシュ関数:dh(k)= k mod 11 + +(K MOD 9)

今はhashvaluesを計算する:。

h(17) = k mod 11 = 6 - OK 
h(6) = 6 = collision => 6 + (1 + (6 mod 9) = 12 = NOK 

=>これは私のインデックスの範囲外です。インデックス番号が大きくなるにつれて、インデックスも高くなります。 2番目のHashFuncionの追加を減算に変更すると、HashValuesがネガティブになります。これもまた良くありません。

私は間違っていますか?

おかげ ズザナ

答えて

0

私はあなたがダブルハッシュのインデックスを計算する方法を誤解していると思います。インデックスは

(H (K)+ J· H (K))であるべきである

MOD TableSizeだから、これら2つのハッシュ関数を用いて使用すべき式は、希望

である((K MOD 11)+ J·(1 +(K MOD 9)))MOD 11人の

+0

おかげたくさん助けてくれたよ! –

関連する問題