問題タブ [murmurhash]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hash - 128 ビット ハッシュの 64 ビット部分は、64 ビット ハッシュと同じくらい衝突耐性がありますか?
開発チーム内での議論に決着をつけようとしています:
64 ビットの PHP ハッシュ関数を探しています。MurmurHash3 の PHP 実装が見つかりましたが、MurmurHash3 は 64 ビットではなく、32 ビットまたは 128 ビットです。
同僚 #1 は、MurmurHash3 から 64 ビット ハッシュを生成するには、128 ビット ハッシュの最初 (または最後、またはいずれか) の 64 ビットをスライスするだけで、ネイティブと同じくらい衝突防止になると考えています。 64 ビット ハッシュ関数。
同僚 #2 は、衝突を減らすためにネイティブの 64 ビット ハッシュ関数を見つける必要があり、128 ビット ハッシュの 64 ビット スライスはネイティブ 64 ビット ハッシュほどの衝突防止にはならないと考えています。
誰が正しいですか?
Murmur3 の代わりに SHA1 のような暗号化ハッシュの最初 (または最後、またはいずれか) の 64 ビットを取得すると、答えは変わりますか?
hash - MurmurHash-それは何ですか?
私はMurmurHashが何をするのかを高レベルで理解しようとしてきました。
私は基本的な説明を読みましたが、それをいつ使用するのか、そしてその理由についての良い説明をまだ見つけていません。私はその非常に速いことを知っていますが、もう少し知りたいです。
UUIDをRedisビットセットに適合させる方法について関連する質問をしました。誰かがMurmurHashの使用を提案しました。それは機能しますが、リスク/メリットを理解したいと思います。
python - MurmurHash の純粋な Python 実装はありますか?
MurmurHashの純粋な python (c++ なし) 実装が必要です (そして見つけることができません) 。私のプロジェクトでは、速度やメモリ使用量は問題ではありません。
ここで試行を見つけましたが、31 ビットのハッシュに制限されており、実際には 64 ビットのハッシュが必要です。
注 : 迅速な実装が必要な場合は、MurmurHash2 ライブラリがここにあり、MurmurHash3 ライブラリがここにあります
delphi - ストリームをハッシュするためのMurmur2のDelphi実装はどこにありますか?
Murmur2を使用してファイルストリームをハッシュするDelphiコードを探しています。32ビットと64ビットの両方をサポートする必要があります。
visual-c++ - つぶやきハッシュ関数を使用したGoogleスパースハッシュ
Googleスパースハッシュマップでmurmurハッシュ関数を使用するには? つぶやきハッシュ関数の使い方を順を追って教えてください。私はビジュアルC++を使用しています。
現在、Google スパース ハッシュ マップで std::hash ハッシュ関数を使用しています。std::hash と murmur ハッシュを使用して実装されている goole スパース ハッシュ マップの間にパフォーマンスの違いはありますか?
c++ - Murmurhash3_x86_128は、15バイトを超えるデータに対してどのように機能しますか?
敵のいない重複排除システムでMurmurHash3を使用したいと思います。したがって、Murmurhash3はたとえばファイルをハッシュします。
しかし、私はそれを使用するのに問題があります。つまり、私は何か間違ったことをしています。
Murmurhash3_x86_128()(ソースコード)関数は4つのパラメーターを受け取ります。これは彼らが何であるかについての私の理解です:
キー-ハッシュにデータを入力
len-データ長
シード-シード
out-計算されたハッシュ値
コードのこの部分が原因で、実行時にセグメンテーション違反で失敗します。
したがって、データの長さが15バイトを超える場合(この場合)、このforループが実行されます。ただし、ブロックはデータ配列の最後を指し、その位置の後にメモリ位置へのアクセスを開始します。セグメンテーション違反について説明します。したがって、キーをデータ配列だけにすることはできません。
私の質問は:キーパラメータに何を入れるべきですか?
問題が解決しました
Mats Peterssonの回答の後、コードにバグがあることに気付きました。私はint(署名済み)である必要があり、署名なしでした。これが、ブロックにメモリ位置を追加し、減算しない理由です。
vb.net - MurmurHash3テストベクトル
MurmurHash3のC#実装をVB.Netに移植しようとしています。
実行されます...しかし、誰かが私にいくつかの既知のテストベクトルを提供して、正確さを検証できますか?
- 既知の文字列テキスト
- シード値
- MurmurHash3の結果
前もって感謝します。
編集:実装を32ビットのMurmurHash3のみに制限していますが、64ビットの実装用のベクトルも提供できる場合はそれも良いでしょう。
scala - MurmurHashからMurmurHash3に移行します
Scala 2.10ではMurmurHash
、何らかの理由で、今すぐ使用する必要があると言って非推奨になってMurmurHash3
います。MurmurHash3
ただし、APIは異なり、 ->失敗に役立つscaladocsはありません。
たとえば、現在のコード:
代わりにこれをどのように使用しMurmurHash3
ますか?Product
これは高速な操作である必要があり、できれば割り当てなしである必要があるため、、、、または私Seq
に提供されていると思われるものを構築したくありません。Array[Byte]
MurmurHash3
python - Python と Haskell での Murmurhash 2 の結果
Haskell と Python は Murmurhash2 の結果に同意していないようです。Python、Java、および PHP は同じ結果を返しましたが、Haskell はそうではありません。Haskell の Murmurhash2 に関して何か間違ったことをしていますか?
Haskell Murmurhash2 のコードは次のとおりです。
そして、Python で書かれたコードは次のとおりです。
Python は 3650852671 を返しましたが、Haskell は 3966683799 を返しました。
cassandra - 複合パーティション キーの Cassandra トークンを生成する方法は?
私の Cassandra ColumnFamily は Murmur3Partitioner を使用し、複合パーティション キーを持っています。このパーティショナーを使用してトークンを作成しようとしましたが、このトークン ファクトリではロング値のみが許可されているようです。「token(partition_column1, partition_column2)」のようなものに対してこれらのハッシュを生成することは可能ですか?