(乗法)ハッシュ関数で使用する乗数の選択に関する助言/規則はありますか?この関数は文字列のハッシュ値を計算します。(文字列)ハッシュ関数の乗数の選択
12
A
答えて
3
あなたのセットのサイズに比例するものを使いたいと思っています。そうすれば、ループしたときに、ちょうどあなたが試みたのと同じ数字に終わることはありません。
1
歴史的には33が一般的な選択のように思えますが、それはかなりうまくいく傾向があります。誰も理由は分かりません。詳細については、look here
2
最近、ハッシュ関数に関する同僚と面白い議論がありました。
標準の言語で使用できるデフォルトの実装よりも衝突を最小限に抑える優れたハッシュ関数を書く必要がある場合は、数学で高度な学位が必要です。
カスタムハッシュ関数がアプリケーションのパフォーマンスを大幅に向上させるアプリケーションを作成しているなら、あなたはGoogleであり、たくさんの数学博士がその作業を行うことができます。
ご質問に直接お答えして申し訳ありませんが、結論としては、文字列に独自のハッシュ関数を書く必要はありません。どの言語で作業していますか?私は "十分に良い"ハッシュコードを計算する簡単な方法があると思います。
関連する問題
- 1. 双方向文字列ハッシュ関数
- 2. 文字列から整数へのハッシュ関数の精度
- 3. 整数文字列値へのハッシュ
- 4. 数字のある文字列のみを選択する
- 5. ハッシュ関数でビット文字列のサイズが重要ですか?
- 6. MySQL:文字数順の行の選択
- 7. .NET文字列ハッシュ関数は移植可能ですか?
- 8. ハッシュ関数をC++で文字列をintに変換する
- 9. 行列へのハッシュ関数
- 10. 文字列の選択ソート
- 11. 文字列の最初の数文字のみを選択するC++
- 12. PHP関数 - カスタム文字列長関数
- 13. 複数の変数(特定の文字列)に基づいてJQueryを選択
- 14. 配列文字列の関数エラー
- 15. コール文字列コンストラクタ関数
- 16. 文字列分割関数
- 17. 文字列関数間?
- 18. データ選択関数
- 19. 文字列のOCaml関数のパラメータパターンマッチング
- 20. 関数内の文字列へのポインタ
- 21. Powershellの関数に文字列や文字列を渡す
- 22. ランダムなバイナリ文字列をハッシュするための適切なハッシング関数
- 23. 0〜19の間の整数にハッシュする文字列
- 24. 文字列関数の戻り値
- 25. strstr()関数のオーバーラップ文字列検索
- 26. Python関数と空の文字列
- 27. サブストリング、xsltの文字列長関数
- 28. Node.js ObjectId関数へのMongoose.js文字列
- 29. strtoupper UTF-8文字列のPHP関数
- 30. ランダムな文字列関数VB.NETのヘルプ?
次のページには、効率的で最小の衝突を示す汎用ハッシュ関数の実装がいくつかあります。http://partow.net/programming/hashfunctions/index.html –