浅谈布隆过滤器

解决的经典问题:
网页黑名单系统
垃圾邮件过滤系统
爬虫网址判断重复系统
容忍一定程度的失误率
对空间要求严格

布隆过滤器:
可以精确的代表一个集合
精确的判断一个元素是否在此集合中(并不是准确,因为)
精确的程度游设计决定
优势:利用很少的空间可以做到精确率较高

总结布隆过滤器的过程:
注意到题目允许有一定的失误率
根据样本的个数n,和允许的失误率p 通过下面的公式

bitarray 的大小 m = -n*lnp/(ln2)^2

根据已经求得的m 计算哈希函数的个数

k = ln2*m/n = 0.7*m/n

根据向上取整, m n k 重新计算真实的错误率

p = (1 - e^-nk/m)^k

布隆过滤器原理:
通过k个哈希函数,将样本分别通过k个哈希映射到bitarray大小为m的数组中,将其中对应的部分置1,涂黑,已经涂黑的部分就不在涂黑了,当判断一个新的样本是否存在于黑名单中时,也将样本通过k个哈希函数,然后判断,其中是否对应的部分都为1,若没有都为1,则该样本肯定不在黑名单中,否则,有可能在,错误率,通过上面的公司可以计算得出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值