关于布隆过滤器的介绍网上有很多,但都没有涉及具体如何实现,尤其是最后的k个相互独立的哈希函数如何实现。
具体实现步骤如下:
(关于布隆过滤器的介绍和相关证明,维基百科是看过的最好的:http://en.wikipedia.org/wiki/Bloom_filter )
(1)确定过滤器大小:
假设我们要处理的数据总数是N,可以容忍的错误率是P,那么我们首先需要确定出过滤器的slot数 M = -N*lnP/(ln2)^2。有了M我们就可以声明过滤器数组了。
(2)确定哈希函数个数:
通过上一步的M,我们可以求得哈希函数个数 K = M/N*ln2 。
(3)设计哈希函数: