[解決済み] MurmurHash - それは何ですか?
質問
を高いレベルで理解しようとしてきました。 ムルムルハッシュ が行います。
基本的な説明は読みましたが、どのような時になぜ使うのか、良い説明がまだ見つかっていません。非常に高速であることは知っていますが、もう少し詳しく知りたいのです。
関連する質問をしました。 質問 という質問に対して、MurmurHashを使うことを提案した人がいました。それはうまくいくのですが、私はリスクと利点を理解したいと思います。
どのように解決するのですか?
Murmurは、非暗号化用途に適した汎用ハッシュ関数群です。Austin Appleby氏が述べたように、MurmurHashは以下のような利点を備えています。
- シンプルである(生成されるアセンブリ命令の数において)。
- 分布が良い(実質的にすべてのキーセットとampでカイ二乗検定をパスする)。
- 良い アバランシェ の動作に影響を与えます(最大0.5%の偏り)。
- 耐衝突性が良い(Bob Jenkinのfrog.c torture-testをパス。4バイトのキーでは衝突は起こりえないし、小さな(1〜7ビットの)差分もない)。
- Intel/AMDハードウェアで優れた性能を発揮し、ハッシュ品質とCPU消費量のトレードオフを実現します。
UUIDのハッシュ化には確かに使えます(他の高度なハッシュ化関数と同じように)。CityHash、Jenkins、Paul Hsiehのものなど...)。さて、Redisのビットセットは4GBビット(512MB)に制限されています。つまり、128ビットのデータ(UUID)を32ビット(ハッシュ値)にする必要があるわけです。ハッシュ化関数の品質がどうであれ、衝突は発生します。
Murmurのような工学的なハッシュ関数を使えば、分布の質を最大にし、衝突の数を最小にすることができますが、それ以外の保証はありません。
汎用のハッシュ関数の品質を比較したリンクです。
http://www.azillionmonkeys.com/qed/hash.html
http://www.strchr.com/hash_functions
<ストライク http://blog.aggregateknowledge.com/2011/12/05/choosing-a-good-hash-function-part-1/
<ストライク http://blog.aggregateknowledge.com/2011/12/29/choosing-a-good-hash-function-part-2/
<ストライク http://blog.aggregateknowledge.com/2012/02/02/choosing-a-good-hash-function-part-3/
関連
-
[解決済み] MurmurHash - それは何ですか?
-
[解決済み] SHA-256 javascriptの実装で、一般に信頼できるとされるものはありますか?
-
[解決済み] トレントファイルの info_Hash とは一体何でしょうか?
-
[解決済み] Express.jsとは?
-
[解決済み】MD5ハッシュを復号化することは可能ですか?
-
[解決済み】SHAが衝突する可能性は、実際には無視しても大丈夫なのでしょうか?
-
[解決済み] ReSharperのGetHashCodeのオーバーライドに'397'が使用されているのはなぜですか?
-
[解決済み] MD5はファイルを一意に識別するのに十分な性能を持っていますか?
-
[解決済み] MD5/SHA1よりもCRCの方が適切な場合とは?
-
[解決済み] MD5ハッシュの計算は、SHAファミリー関数よりもCPU負荷が低いですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】弱い抵抗と強い抵抗の違いとは?
-
[解決済み] MurmurHash - それは何ですか?
-
[解決済み] node.jsのハッシュ文字列?
-
[解決済み】MD5ハッシュを復号化することは可能ですか?
-
[解決済み】ハッシュとレンジの主キーとは?
-
[解決済み】SHAが衝突する可能性は、実際には無視しても大丈夫なのでしょうか?
-
[解決済み】レインボーテーブル攻撃に対してパスワードソルトはどのように役立つのでしょうか?
-
[解決済み】非暗号化用途で最も高速なハッシュは?
-
[解決済み] パスワードの暗号化:ベストプラクティス?[クローズド]。
-
[解決済み] MD5ハッシュの計算は、SHAファミリー関数よりもCPU負荷が低いですか?