2

一連のキーとそのハッシュ値が与えられた場合、ダブル ハッシュ関数を決定するにはどうすればよいですか?

アップデート

おもうh(x) = k % 13 + 1

4

1 に答える 1

0
h(x) = (x+1) % 13

あなたが持っていたものですが、1を追加した後にモジュロが必要なので、結果の値は[1,13]ではなく[0,12]の範囲になります...しかし、あなたはそれを正しくしました。

r(x) について思いついたのは次のとおりです。

r(x) = (x+6) % 19

これは、なぜこれになるのか本当に意味がありませんが、私がこれにたどり着いた方法は、与えられた値のためにモジュロ除数がシフトを6増加させたに違いないということでした(38と101はモジュロ13に対して1の差がありますそして、それらは 6 スペース離れていました)。モジュロ 19 が本当にこの問題を解決しているように感じるので、これは合っているように見えますが、より良い答えを探しますが、それが私が思いついたものであり、推測とチェックよりも方法があったように感じます.

ご不明な点がございましたら、お気軽にコメントをお寄せください。

于 2011-12-10T09:06:46.350 に答える