次の要件を悪用するハッシュ関数を探しています。
- N個の異なる整数値がハッシュテーブルに保存されます
- 任意の時点で、ハッシュテーブルに存在する値が M 個を超えることはありません
- ハッシュテーブルはいくつかのクエリに対して静的なままです (つまり、ある時点でハッシュテーブル全体が初期化され、次の呼び出しはハッシュテーブルからのみ読み取られます)
- 可能な最大のキー値 K は、ハッシュテーブルの初期化時に既知です (K >> N)
- クエリされたすべてのキーと値のペアがハッシュテーブルに存在する
これまでのところ、次のようなハッシュ関数を使用しています: h(k) = 7 * k % M with M = PRIME_CLOSE_TO(7*N)
7はやや恣意的です。
これを改善する方法について何か提案はありますか?