【发布时间】: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