固定数の関数では、偽陽性の確率を仮定してBloom Filterのサイズをどのように計算できますか?

私はブルームフィルタを実装する必要があります。そして、私はこれの方法を見つけることができません。

固定数の関数では、偽陽性の確率を仮定してBloom Filterのサイズをどのように計算できますか?

たとえば、フィルタに偽陽性が10%あり、数値関数とセット内の要素数があります。

偽陽性確率に一致するBloom Filterのサイズはどのようにして計算できますか?

2

1 答え

この式は、 Wikipedia にあります。利用可能なハッシュ関数が十分にあると仮定すると、指定した偽陽性率が0.1の場合、要素あたり〜4.8ビットが必要です。

この場合、4つのハッシュ関数が最適であるように見えます。より多くのハッシュ関数が常に優れているわけではないことに注意してください。フィルタのサイズに比べて非常に多くのハッシュ関数がある場合、ほとんどすべてのビットを素早く設定し、多くの誤検出が発生します。

2
追加された
実際には、ハッシュ関数をチェックして、実世界の入力でうまく動作していることを確認する必要があります。良いハッシュ関数を書くのは簡単ではありません。
追加された 著者 cah,