1
我正在嘗試製作可配置的布隆過濾器。在構造函數中,您可以設置過濾器的預測必要容量(n
),期望的錯誤率(p
)以及散列函數(大小爲k
)的列表。計算布隆過濾器中的正確比特數
According to Wikipedia,下列關係成立(m
是比特數):
p = (1 - k * n/m) ** k
由於我得到p
,n
和k
作爲參數,我需要解決m
;我得到以下:
m = k * n/(1 - p ** (1/k))
但是,有幾件事情讓我覺得我做錯了什麼。對於初學者,p ** (1/k)
將傾向於1
足夠大的k
,這意味着整個分數是病態定義(因爲您可以想像除以0
)。
您可能會注意到的另一件事是,p
(允許的最大錯誤率)增長,m
也是如此,這是完全倒退的。
我哪裏錯了?
您的代數操控看起來是正確的,但是您確定您是以正確的公式開始*嗎? wikipeda頁面有*類似於*的內容,但不完全相同,因爲您擁有... – AakashM 2012-02-07 14:33:37