2017-04-24 45 views
1

我正在實現一個BloomFilter,並且必須通過添加[0,N]元素並檢查過濾器是否包含(n,oo)元素來計算誤報數。我正在計算正確的誤報數量。在我的循環中,每次可能包含()都會告訴我,我的過濾器包含(n,oo)中的一個元素,我將其添加到誤報中。 但例如當我有16元的過濾器,我得到10個假陽性和假陽性的爲0Bloom Filter False Positives

率任何幫助,將不勝感激

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

好的,我修正了這個問題。我的循環是否正確? –

回答