首页 > 其他 > 详细

布隆过滤器

时间:2016-07-06 14:49:45      阅读:284      评论:0      收藏:0      [点我收藏+]

可运用于   网页黑名单系统     垃圾邮件过滤系统      爬虫的网址判重系统等数据量很大的问题技术分享

--好的哈希函数能将很多输入均匀地分布在bit array上,将所有值%m,可以分布到0~m-1上。处理过程如上图所示,一个对象经过k个哈希函数处理后,得到k个值,根据这k个值将对应的bit做标记。处理完所有输入之后,一个布隆过滤生成结束。

--检查阶段,对于一个输入a,如果,经过哈希处理后有一个bit没有被标记,那么该输入就不存在测试集合中,反之,则存在。

但是,如果测试集合很多,那么bit array 可能大部分被标记,即使某一个输入并不是测试集合中的记录,但是很有可能他所对应的bit都是标记过的。要排除这种情况,就要合理地设计bit array 的大小m,哈希函数的个数k,针对给定的失误率p,就有以下公式:

     m = -(n*lnp)/(ln2)2

     k = ln2 * (m/n)      其中n为测试集合中记录条数

   

布隆过滤器

原文:http://www.cnblogs.com/lp3318/p/5646692.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!