コーメンの著書「アルゴリズムの紹介」で、ダブルハッシュ(オープンアドレス指定)関数が次の形式であることを読みました。
h(k, i) = (h1(k) + i * h2(k)) mod m
ここで、kはキー、iは衝突の場合の次のインデックス、mはテーブルの長さ、hXはハッシュ関数です。
彼は、二重ハッシングの主な問題は、テーブル内のすべてのインデックスを利用することだと言います。この問題を解決するには、 mを 2 の累乗に設定し、h2関数は奇数値を返す必要があります。なぜ(彼が説明しているのが見えない)?