Bloom Filter原理
来源:互联网 发布:金融数据挖掘 马超群 编辑:程序博客网 时间:2024/06/05 00:49
布隆过滤器(Bloom Filter,简称BF)是用来检测某个元素是否是大数据集合的成员的一个有效方法,具有很好的空间和时间效率。
BF是一个二进制向量数据结构,可以理解为有m个抽屉的桌子。
设计一个BF需要有3个功能部件:(1)有n个元素的集合M;(2)长度为m的位数组(BF结构);(3)k个哈希函数。
初始状态:位数组各位都为0,即每个抽屉都是空的。
实现过程:依次取集合M中的元素,例如a,计算hi(a)=x ,其中1<= i <=k,1<= x <=m,并将位数组的第x位设置为1.
可见:对每一个元素,都使用了k个哈希函数对其进行了计算,并将相应的抽屉都设置为1。
如何判断:元素b是否在位数组中?对b,使用hi(b)=x ,其中1<= i <=k,并查看第x个抽屉是否为1。
如果有一个抽屉不为1,即可知道b不在集合M中;反之,表明b在M中。
误判:元素不在集合M中,但通过BF判断其在M中。
漏判:如果元素在集合M中,则通过BF判断其一定在M中。
注意:BF会产生误判,但不会发生漏判。
产生误判的原因:因为位数组中很多位都被设置成了1,使得通过哈希函数产生的数对应的位数都为1。
影响误判的因素:(1)位数组长度,位数组越长,使得剩余0的个数会越多,产生误判的概率越小;
(2)集合M的元素个数n,n越大,使得位数组各位产生1的概率增大,产生误判的概率随之增大;
(3)哈希函数的数量。
- 【bloom filter】Bloom Filter概念和原理
- bloom filter原理
- Bloom Filter原理
- Bloom Filter原理
- Bloom Filter原理介绍
- Bloom Filter概念和原理
- Bloom Filter概念和原理
- Bloom Filter概念和原理
- Bloom Filter概念和原理
- Bloom Filter概念和原理
- Bloom Filter概念和原理
- Bloom Filter概念和原理
- Bloom Filter概念和原理
- Bloom Filter概念和原理
- Bloom Filter概念和原理
- Bloom Filter概念和原理
- Bloom Filter概念和原理
- Bloom Filter 原理与应用
- [设计模式]迭代器模式
- Combine Two Tables
- 浏览器兼容性
- CSS3——动画功能
- 01.linux系统常用配置
- Bloom Filter原理
- 一些在线编程练习或调试网站
- 环境变量配置
- 矩阵旋转算法提高75%运算
- 02.vi编辑器的使用
- POJ 2955 Brackets 区间dp入门题
- 暑期工作日志-Day5
- 大数操作
- [gym101047K Training with Phuket's larvae] 给定N条边求能组成三角形的最小面积