适应蟒蛇3型的达塔马兰蟒蛇叉
dm-pybloom的Python项目详细描述
dm_pybloom
==
图片::https://travis-ci.org/jaybaird/python-bloomfilter.svg?branch=master
:target:https://travis ci.org/jaybaird/python bloom filter
``dm_pybloom``是一个模块,它包括bloom过滤器数据结构以及
可伸缩bloom过滤器的实现,如:
p.almeida,c.baquero,n.pregui_a,d.hutchison,可伸缩bloom过滤器,
(globecom 2007),ieee,2007年。
bloom filters非常棒,如果您了解需要提前将
的位设置到一边以存储整个集的话。可伸缩的bloom过滤器允许bloom
过滤器位随着假阳性概率和大小的函数而增长。
a filter is“full”when at capacity:m*((ln 2^2)/abs(ln p)),其中m
是位的数量,p是假阳性概率。当达到容量
时,将创建一个比上一个
指数大的新过滤器,具有更高的误报概率和更多的散列函数。
代码块::python
>;>from dm_pybloom import bloomfilter
>;>f=bloomfilter(容量=1000,错误率=0.001)
>;[f.add(x)for x in range(10)]
[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false]
>;>全部([(x in f)表示x in range(10)])
true
>;>10 in f
false
>;>5 in f
true
>;>f=bloomfilter(容量=1000,错误率=0.001)
>;>i in x range(0,f.容量):
…_=f.add(i)
>;>;(1.0-(len(f)/float(f.capacity))<;=f.error_rate+2e-18
true
>;>;来自dm_pybloom import scalablebloomfilter
>;>;sbf=scalablebloomfilter(mode=scalablebloomfilter.small_set_growth)
>;count=10000
>;>;对于x范围(0,计数):
…_=sbf.add(i)
…
>;>1.0-(len(sbf)/float(count))<;=sbf.error_rate+2e-18
true
len(sbf)可能不等于整个输入长度。0.01%的误差小于默认的0.1%误差阈值。随着容量的增加,
误差将接近0.1%。