bloom filter

Bloom Filter
m=|bit array|, n=|S|, k=# of hash functions.
false positive=\left(1-\left[1-\frac{1}{m}\right]^{kn}\right)^k \approx \left( 1-e^{-kn/m} \right)^k.
Given m and n, k = \frac{m}{n} \ln 2, will results the minimum false positive. k=-log2eps.
y=D(expression((1-exp(c*x))^x),'x')
> y
(1 - exp(c * x))^x * log((1 - exp(c * x))) - (1 - exp(c * x))^(x -     1) * (x * (exp(c * x) * c))
let y=0, we get k
let c=m/n, number of bits of each Si
 
in code: given eps and n, we get k=-log2eps, c=k/ln2, m=n/c
 Java code :
https://github.com/MagnusS/Java-BloomFilter/blob/master/src/com/skjegstad/utils/BloomfilterBenchmark.java
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值