2009-03-14 12 views
2

スパースビットベクトルの良いハッシュ関数を知っている人はいますか? 具体的な例を挙げれば、各ビットの確率が10%の4096ビット整数をハッシュしたいとします。スパースビットベクトルのハッシュ処理

私はハッシュでいくつかの圧縮を取得したいと思います。例えば、4096ビットインと32ビットアウト。これは、私が探しているものを説明するための単なる例です。もちろん、すべての答えは非常に感謝しています。

+0

あなたが探しているハッシュの種類を教えてください。 Javaおよび.NETでは、ハッシュコード(ハッシュテーブルなど)のハッシュコードは32ビット整数であるため、明らかな答えは元の値を返すことです。私はそれがあなたが望んでいないと思うので、もっと明快さは歓迎されるでしょう。 –

+0

32ビットが小さすぎるかもしれません。それが1024ビット、または他のもっと大きな値だと言ってください。私はいくつかの圧縮を取得したい。ですから、32ビットの32ビットのビットは、私が探しているものではありません。 –

答えて

3

Bloom filterは役に立ちますか?

ビットベクトルが2^32ビットの場合、なぜ32ビット整数を使用しないのですか?

+0

"ビットベクトルが2^32ビットの場合"ステートメントを修正したい場合があります; –

+0

面白いです。あなたはBloom Filterのハッシュ関数に何を使うべきか考えていますか? –

+0

32ビット整数(元の編集単位)について言えば、サイズが2^16ビットのベクトルで、整数n /(2^16)が設定されている場合はビットnを設定できます。次に、xが元のデータに含まれているかどうかを知りたい場合は、ビットx /(2^16)が設定されている場合、「はいまたは多分」(決して「いいえ」)と認識されます。セットが希薄で検索にコストがかかる場合に使用します。 –

0

私はちょうどあなたがC++ 0xのを使用している場合

hash<vector<bool>>(...) 

を呼び出すことによって、いつものようにビットをハッシュ、または他の後押し::ハッシュを見るでしょう。

関連する問題