哈希:对 ∀ Input i ∈ A \forall{}\text{Input}_i\text{∈}A ∀Inputi∈A通过所有 k k k个哈希函数,得到 n × k n\text{×}k n×k个哈希值 f H a s h i ( Input j ) mod z f_{Hash}^{i}(\text{Input}_j)\text{ mod }z fHashi(Inputj) mod z
填充:将布尔数组中 index = f H a s h i ( Input j ) mod z \text{index}=f_{Hash}^{i}(\text{Input}_j)\text{ mod }z index=fHashi(Inputj) mod z的位由 0 0 0设为 1 1 1 💡如图中: f H a s h 3 ( Input 4 ) = 3 f_{Hash}^{3}(\text{Input}_4)\text{=}3 fHash3(Input4)=3所以设 array[3]=1 \text{array[3]=1} array[3]=1
查询过程:给定元素 query \text{query} query
哈希:让 query \text{query} query通过所有 k k k个哈希函数,得到 k k k个哈希值 f H a s h i ( query ) mod z f_{Hash}^{i}(\text{query})\text{ mod }z fHashi(query) mod z
输出:若数组上所有索引值为 f H a s h i ( query ) mod z f_{Hash}^{i}(\text{query})\text{ mod }z fHashi(query) mod z 的 k k k个位置都是 1 1 1,则认为 query∈ A \text{query∈}A query∈A 💡如图中:如果 query \text{query} query的哈希值为 → { 1 / 3 / 4 → 认为query∈ A 1 / 2 / 4 → 不认为query∈A ( 源于array[2]=0) \small\to\begin{cases}1/3/4\to{}认为\text{query∈}A\\\\1/2/4\to{}不认为\text{query∈A}(源于\text{array[2]=0)}\end{cases} →⎩⎨⎧1/3/4→认为query∈A1/2/4→不认为query∈A(源于array[2]=0)