2012-01-27 7 views
4

を確実にするために、ハッシュ関数は、入力のいずれかの種類のための合理的なパフォーマンスを保証するために、実行時にランダムに選択させる方法です。基本、どのように私の現在の理解ユニバーサルハッシュへのアクセス

私たちは(決定論的ハッシュ関数の可能性が知られている)故意に悪質な入力を選ぶ誰かによる操作を防ぐためにこれを行うことが理解しています。

は私の質問は以下の通りである。それは、我々はまだキーが同じアドレスに、我々はそれをハッシュするたびにマップされることを保証する必要があること、真実ではないですか?たとえば、情報を取得したいが、ハッシュ関数がランダムに選択されている場合、データを取り戻すことはできますか?

答えて

5

汎用ハッシュ関数は、高い確率で、宇宙から二ランダムに選択された要素は、ハッシュ関数が選択されない物質を衝突しないという特性を有する異なるハッシュ関数のファミリーです。通常、これは、インプリメンテーション内で使用する一連のハッシュ関数からランダムなハッシュ関数を選択することによって実装されます。このハッシュ関数を選択すると、ハッシュテーブルは通常どおり動作します。このハッシュ関数を使用してオブジェクトのハッシュコードを計算し、そのオブジェクトを適切な場所に配置します。ハッシュテーブルは、それが作られ、それ以外の場合は(あなたが指摘してきたように)、それは各要素をマッピングされた場所、それは忘れてしまうことから、プログラム全体で一貫してそれを使用しているハッシュ関数の選択を覚えています。

希望すると便利です。

関連する問題