python中带位运算的Bloom过滤器
请考虑以下Python实现: 这种布卢姆过滤器的简单用途是: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 你能详细解释一下散列函数
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))