布隆过滤器


Bloom-Filter , 即布隆过滤器  

通常用来检索一个元素是否在一个集合内

布隆过滤器存在失误率 但是不存在误判 : 即结果为不再集合内 一定不在 若结果为在集合内 可能在也可能为失误

此算法的核心思想就是用相对独立的哈希算法对一个位数组进行映射避免发生哈希冲撞 映射到的比特位置为1 使用时多个哈希映射要过滤的元素 


1.关于位数组的大小选取与哈希个数

---当hash函数个数k=(ln2)*(m/n)时错误率最小。在错误率不大于E的情况 下,m至少要等于n*lg(1/E) 才能表示任意n个元素的集合。但m还应该更大些,因为还要保证bit数组里至少一半为0,则m应 该>=nlg(1/E)*lge ,大概就是nlg(1/E)1.44倍(lg表示以2为底的对数)。 


改进:

CounterBloom FilterBloomFilter无法进行删除操作 删除时可能会牵动位的变化 不知道一个位属于那些数据 改进的方法为在BloomFilter上加计数器 天价使增加计数 删除时减少计数


Compressed Bloom Filter:改进针对于在服务器之间更快的传输 主要方法是在完成BloomFilter后根据实际所给的参数进行压缩 将元素全部添加入Bloom Filter后,我们能得到真实的空间使用率,用这个值代入公式计算出一个比m小的值,重新构造Bloom Filter,对原先的哈希值进行求余处理,在误判率不变的情况下,使得其内存大小更合适。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值