4

ハッシュされる要素の数がわかっている場合、文字列から整数への完全なハッシュ関数を持つことは可能ですか? 完全なハッシュ関数とは、衝突の可能性がないことを意味します。

基本的に、ファイルから複数のテーブルの署名を読み取っています (例: ID、名前、アドレス)。異なるテーブルには共通の属性 (名前など) がありますが、位置 (列など)は異なります。次のような質問ができるようにしたいと思います: table1["name"] とは? または table2["名前"]。

更新: 既にあるものを使用するよりも、自分でそれを行うことを学ぶことを好みます。

4

1 に答える 1

4

GNU gperfを参照してください。

GNU gperf は完璧なハッシュ関数ジェネレーターです。指定された文字列のリストに対して、入力文字列に応じて値を検索するために、ハッシュ関数とハッシュ テーブルを C または C++ コードの形式で生成します。ハッシュ関数は完璧です。つまり、ハッシュ テーブルには衝突がなく、ハッシュ テーブルのルックアップには単一の文字列比較のみが必要です。

于 2013-03-13T16:39:43.720 に答える