欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > Bloom过滤器原理

Bloom过滤器原理

2025/12/14 3:47:22 来源:https://blog.csdn.net/qq_64091900/article/details/143482048  浏览:    关键词:Bloom过滤器原理
图片1zxzcfe
  1. 组成结构:长为 z z z的布尔数组(初始化为全 0 0 0) + + + k k k个哈希函数
  2. 构建过程:给定集合 A A A
    • 哈希:对 ∀ Input i ∈ A \forall{}\text{Input}_i\text{∈}A InputiA通过所有 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
  3. 查询过程:给定元素 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)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词