2017-04-24 13 views
1

私はBloomFilterを実装しており、[0、N]要素を追加し、フィルタに(n、oo)要素が含まれているかどうかを確認することで偽陽性の数を計算する必要があります。正しい偽陽性数を計算する際に問題が発生しています。私のループのたびに、possiblecontains()は私のフィルタに(n、oo)の要素が含まれていると私に伝えます。私は偽陽性に追加します。 しかし、私は16個の要素のフィルタを持っている場合例えば、私は10個の偽陽性を取得し、私はこのライブラリを使用していたすべてのヘルプはBloom Filter偽陽性

for (int numNotInFilter =size+1; numNotInFilter<2*size; numNotInFilter++) 
{ 
       if (myBloom.possiblyContains((const uint8_t*)(&numNotInFilter), sizeof(int))) 
     { 
      numOfFalsePositives+=1.0; 
     } 
} 
    double RateOfFalsePositives = (numOfFalsePositives)/((2 * size) - 1); 
+0

あなたは 'RateOfFalsePositives'が0と1の間にあると思いましたか?これは整数型です。 – aschepler

+0

私はそれを修正しました。私のループは正しいですか? –

答えて

1

をいただければ幸い0

として偽陽性率過去bloom filtersを扱うときに遭遇した偽陽性が計算されている例があります:私は、一例で起こっていただきましたのFALSの割合を伝えることができるものから、

https://github.com/ArashPartow/bloom/blob/master/bloom_filter_example02.cpp

は、肯定的な確率は遭遇した偽陽性の数に基づくだけでなく、ブルームフィルタサイズの関数でもある。

関連する問題