算法实现

符号说明

SymbolDesc
BF大小
BF中元素个数
BF中哈希函数个数
自定义的k
一个集合
一个集合里面的元素
一个集合里面的元素
s 的 第 i 个哈希值
误判
误判率
BF的误判比例
添加所有 n 个元素后 某个比特为0的概率
标准BF实现
独立BF,对于每个集合单独创建一个BF
Shifting BF
用于成员查询的ShBF
用于关系查询的ShBF
用于计数查询的ShBF
每秒查询数量
multi-set允许重复的集合
偏移量
机器字长
最大偏移量
某个元素最大出现次数

构建阶段

构建分为三步

  1. 构建 个独立均匀分布的哈希函数,包含 个比特的数组
  2. 冲集合 中读取 元素
    1. 使用前 个哈希函数计算并存储存在信息:
    2. 使用第 个哈希函数计算偏移信息:
  3. 将偏移信息 设为1

image-20221107145729961

如何选择合适的

我们需要一个合适的 让我们可以同时处理 以及

注意,像x86平台的CPU可以从任何字节访问数据,不需要对其,也不需要在同一个 WORD 中

比如说, 是某字节的第 个元素,为了同时访问,我们需要保证 能被一次访问,即 ,j最大为时 的最大值最小为 ,那么

大概长这样

image-20221107154342603