布隆过滤器我的认识

用于网页黑名单系统,垃圾邮件过滤系统,爬虫的网址判重系统。
通常的意思是在大量数据集合中,判断一个新数据是否存在于这个集合中。
数据量少还能够使用hashmap和位图bitmap。数据一大占用内存不理想。
布隆的作饭法是,开辟一个长度为m的位图数组,对于每个集合的元素使用多个hash函数计算得值%m,落在数组上的位置
都置1,这样计算完一个集合样本以后,位图数组就被置了不少1,当一个新数据来了,将那多个hash函数计算一下,若是获得的%m以后发如今位图数组上都是1了,那么能够肯定这个数据在集合里,若有一个或多个为0,那就不是。删一个样本不容易。
样本数量为n,失误率为p,
m = -(n*lnp)/(ln2)^2
哈希函数的个数k = ln2 * m/n;数组

相关文章
相关标签/搜索