【问题标题】:With fixed number of functions, how can I calculate the size of a Bloom Filter given the probability of false positives?使用固定数量的函数,在给定误报概率的情况下,如何计算布隆过滤器的大小?
【发布时间】:2011-12-19 10:28:00
【问题描述】:

我需要实现一个布隆过滤器。我找不到解决办法。

在函数数量固定的情况下,如何在给定误报概率的情况下计算布隆过滤器的大小?

例如,我希望过滤器有 10% 的误报,我有数字函数和集合中元素的数量。

如何计算与误报概率匹配的布隆过滤器的大小?

【问题讨论】:

    标签: c algorithm


    【解决方案1】:

    此公式在Wikipedia 上。假设您有足够多的哈希函数可用,那么在您指定的误报率为 0.1 的情况下,每个元素需要约 4.8 位。

    在这种情况下,看起来 4 个哈希函数是最佳的。请注意,更多的散列函数并不总是更好 - 如果相对于过滤器的大小有很多散列函数,您很快就会将几乎所有位设置为打开,并且会得到很多误报。

    【讨论】:

    • 我应该补充一点,在实践中你应该检查你的散列函数,以验证它们在现实世界的输入中表现良好。编写好的哈希函数并非易事。
    猜你喜欢
    • 1970-01-01
    • 2021-10-22
    • 2010-11-01
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多