質問
(乗算) ハッシュ関数で使用する乗数を選択する際のアドバイスやルールはありますか。この関数は文字列のハッシュ値を計算しています。
解決
セットのサイズに比較的近いものを使用したいとします。こうすることで、ループを繰り返すときに、試したばかりの数字と同じ結果になることがなくなります。
他のヒント
最近、同僚とハッシュ関数について興味深い議論をしました。私たちの結論は次のとおりです。
標準言語で利用可能なデフォルトの実装よりも衝突を最小限に抑える優れたハッシュ関数を本当に作成する必要がある場合は、高度な数学の学位が必要です。
カスタム ハッシュ関数によってアプリケーションのパフォーマンスが著しく向上するアプリケーションを作成している場合、あなたは Google であり、その仕事を行うための数学博士号をたくさん持っています。
質問に直接答えられなくて申し訳ありませんが、要するに、String 用の独自のハッシュ関数を作成する必要はありません。どの言語を使用していますか?「十分な」ハッシュ コードを計算する簡単な方法があると思います。
歴史的には 33 が一般的な選択のようで、かなりうまく機能する傾向があります。その理由は誰にも分かりません。詳細については、 ここを見て
所属していません StackOverflow