【发布时间】:2011-12-19 10:28:00
【问题描述】:
我需要实现一个布隆过滤器。我找不到解决办法。
在函数数量固定的情况下,如何在给定误报概率的情况下计算布隆过滤器的大小?
例如,我希望过滤器有 10% 的误报,我有数字函数和集合中元素的数量。
如何计算与误报概率匹配的布隆过滤器的大小?
【问题讨论】:
我需要实现一个布隆过滤器。我找不到解决办法。
在函数数量固定的情况下,如何在给定误报概率的情况下计算布隆过滤器的大小?
例如,我希望过滤器有 10% 的误报,我有数字函数和集合中元素的数量。
如何计算与误报概率匹配的布隆过滤器的大小?
【问题讨论】:
此公式在Wikipedia 上。假设您有足够多的哈希函数可用,那么在您指定的误报率为 0.1 的情况下,每个元素需要约 4.8 位。
在这种情况下,看起来 4 个哈希函数是最佳的。请注意,更多的散列函数并不总是更好 - 如果相对于过滤器的大小有很多散列函数,您很快就会将几乎所有位设置为打开,并且会得到很多误报。
【讨论】: