MIT朗読からの良いハッシュ関数の特性:
- 単純な均一ハッシュの仮定を(ほぼ)満たします。各キーは、m個のスロットのいずれかに等しくハッシュされる可能性があります。
- ハッシュ関数は特定のスロットに偏ってはいけません。同じスロットに類似のキーをハッシュしないでください(たとえば、コンパイラのシンボルテーブルは変数iとjを同じスロットにハッシュしないでください。これらは、多くの組み合わせで使用されるためです)。
- 計算が速く、O(1)ランタイムが必要です
- 決定論的です。h(k)は、指定されたkに対して常に同じ値を返す必要があります
誰かがポイント2をさらに説明できますか?変数名はハッシュ関数と何の関係がありますか?
編集:私はJavaを使用しています。したがって、回答にJavaセマンティクスを使用した説明が含まれている場合は、問題ありません。