【问题标题】:guava bloom filter hight expected false positive percent after insertions番石榴布隆过滤器高预期插入后的误报百分比
【发布时间】:2015-02-19 20:56:31
【问题描述】:

我尝试向布隆过滤器插入大量 long 并以低错误检查它们。构造函数向我保证插入次数的预期百分比,但毕竟插入,新的预期百分比不同并且非常高。

BloomFilter<Long> longBloomFilter = BloomFilter.create(Funnels.longFunnel(), 258112656, Math.pow(10, -8));
for (int i = 0; i < 258112656; i++) {
  longBloomFilter.put((long) i);
}
System.out.println(longBloomFilter.expectedFpp());

打印 0.17

我不太相信,布隆过滤器可以给出如此大的错误率,但为什么之前和之后的期望如此不同?

【问题讨论】:

  • 你到底是怎么选择常数258112656的?当我对 n = 10^8 执行相同的过程时,我得到 10^-8 的合理答案。

标签: java guava bloom-filter


【解决方案1】:

我强烈怀疑您使用的是过时版本的 Guava。当我使用 Guava 18.0 运行您的代码时,我得到 1.001370499582369E-8,这是一个非常合理的输出。

【讨论】:

    猜你喜欢
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多