Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中带位运算的Bloom过滤器_Python_Bloom Filter - Fatal编程技术网

python中带位运算的Bloom过滤器

python中带位运算的Bloom过滤器,python,bloom-filter,Python,Bloom Filter,请考虑以下Python实现: 这种布卢姆过滤器的简单用途是: bf = BloomFilter() bf.add(30000) bf.add(1230213) bf.add(1) print("Filter size {0} bytes").format(bf.filter.__sizeof__()) print bf.query(1) # True print bf.query(1230213) # True print bf.query(12) # False 你能详细解释一下散列函数

请考虑以下Python实现:

这种布卢姆过滤器的简单用途是:

bf = BloomFilter()

bf.add(30000)
bf.add(1230213)
bf.add(1)

print("Filter size {0} bytes").format(bf.filter.__sizeof__())
print bf.query(1) # True
print bf.query(1230213) # True
print bf.query(12) # False
你能详细解释一下散列函数是如何使用的吗?例如,在行中:

self.filter[(digest / 8)] |= (2 ** (digest % 8))
代码似乎正在使用
操作,使用使用
self创建的哈希函数写入筛选器。\u hash
但我无法理解在向筛选器添加值或从筛选器查询值时,此按位操作是如何工作的

  • 为什么要使用
    2**(摘要%8)
  • 为什么使用
    写入过滤器,使用
    进行查询
self.filter[(digest / 8)] |= (2 ** (digest % 8))