Bloom-Filter算法 简介
来源:互联网 发布:手机淘宝没有了淘抢购 编辑:程序博客网 时间:2024/05/19 07:09
Bloom-Filter算法 其实可以看作 bit-map 的一种扩展。
它把已存在的元素通过多个hash 函数映射到一个 bit 序列,对于每一个元素根据hash函数的结果把相应的 位置置一(这个bit序列通常很长,但是比起记住所有元素它占用的空间是小的)。
在判断一个元素时候已存在的时候,它会把这个元素的多个hash结果对应到bit序列中查看,如果已经全部置为一,那么说明该元素已经存在。
一个Bloom Filter有以下参数:
(假阳性)
为了把错误率控制在 f,共有 n 个元素的集合作 bloom filter 其他参数可以由以下公式来定值:
m =nlg(1/f)*lge (其中 lg 表示以2为底的对数)
k = - ln(f) / ln(2)
另外对于一个元素非常多的集合要进行 Bloom Filter 操作,必须构造一个返回值范围很大的 hash 函数。可以用 md5 算法生成十六进制的hash值,然后转成十进制:
import hashlibm=hashlib.md5()m.update('123123123123123123')print int(m.hexdigest(), base=16)
详见:http://blog.csdn.net/hguisu/article/details/7866173
- Bloom filter算法简介
- Bloom-Filter算法简介
- Bloom-Filter算法 简介
- Bloom Filter 算法简介 (增加 Counting 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算法
- Java的字节输出流OutputStream小结
- JS 模式对话框 form提交 重新打开窗口问题
- Android中JNI编程的那些事儿
- QT的Event Filter
- ORACLE 视图(VIEW)
- Bloom-Filter算法 简介
- (1)Android开源项目介绍
- 使用 screen 共享会话(多台电脑可以用来共享窗口然后--开会、教学等)
- 开通
- javascript字符串连接的性能
- Eclipse 快捷键大全
- GB28181检测过程
- 递归2: 十进制转换成二进制的递归与迭代实现
- 锦衣卫密信:可见符94进制数和手机短信的加密关系