【问题标题】:Will bloom filter always return false positives under certain conditions?布隆过滤器在某些情况下总是会返回误报吗?
【发布时间】:2015-03-07 16:01:29
【问题描述】:

假设一个布隆过滤器 API,有 2 个参数 - 1.布隆过滤器的位数 (n) 和 2. 预期的插入数 (m)。

问题:

m > n 总是会导致complete 误报吗? complete 我想说的是,在 m > n 条件之后,对 'contains(element)' 方法的每个测试都会返回 true 吗?

【问题讨论】:

  • 没有。或许您应该解释一下为什么您认为会出现这种情况。

标签: data-structures language-agnostic bloom-filter


【解决方案1】:

当你的 m > n 时,布隆过滤器总是回答是,但当它的所有 n 位都为 1 时 - 那么每次查询 h 个位置(其中 h 是哈希函数的数量)将产生 h 1s。尽管如此,优化空间与误报率权衡的典型设置是当任何位被设置的概率为 1/2 时。分析显示在布隆过滤器维基百科文章中:http://en.wikipedia.org/wiki/Bloom_filter

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    相关资源
    最近更新 更多