固定サイズの文字列と整数で構成される単純な構造体があります。この構造体をハッシュ テーブルのキーとして使用する必要があります。文字列 Hs(string) のハッシュ関数と、整数 Hi(int) のハッシュ関数があります。この単純な構造体のハッシュ関数が H(struct) = Hs(string) + になるかどうか疑問に思っています。こんにちは(整数)? または、整数を文字列にエンコードして文字列に追加し、文字列ハッシュ関数を使用することもできます。助言がありますか?ありがとう。
2 に答える
1
「方法」を理解するために、最初にいくつかの質問に答える必要があります:
a) 収容できるアイテムの数は?
b) ハッシュ テーブルのサイズは?
c) の組み合わせは<string X int>
いくつありますか (文字列のサイズは固定されているため、計算は簡単です)。
それが分かれば、衝突を最小限に抑えるハッシュ関数を簡単に見つけることができます。たとえば、Hs(string) を使用するだけで十分な場合があります。
于 2013-09-26T03:12:33.677 に答える
0
それらのいずれかが機能します。私のデフォルトは Hs(string) XOR Hs(int) ですが、プラスも問題ありません。Hs(string) XOR Hs(int) または Hs(string) + Hs(int) の方が高速ですが、おそらく衝突しない必要があり、おそらく両方とも衝突しません。
于 2013-09-26T03:12:25.593 に答える