布隆过滤器
作用
①黑名单
②爬虫去重等
公式
m
=
−
n
∗
ln
p
(
ln
2
)
2
m=-\frac{n*\ln p}{(\ln 2) ^2}
m=−(ln2)2n∗lnp
m:bit
n:样本量
p:预期失误率(如:万分之一0.0001)
k
=
ln
2
∗
m
n
=
0.7
∗
m
n
k=\ln 2 *\frac{m}{n}=0.7*\frac{m}{n}
k=ln2∗nm=0.7∗nm
k:hash函数的个数
(
1
−
e
−
n
∗
k
m
)
k
(1-e^{-\frac{n*k}{m}})^k
(1−e−mn∗k)k
总结
样本量和预期失误率决定bit数组开多大,根据bit数组大小和样本量决定hash函数的个数,把hash函数个数向上取整,最终预期失误率可以到达 ( 1 − e − n ∗ k m ) k (1-e^{-\frac{n*k}{m}})^k (1−e−mn∗k)k。