C中布隆过滤器的通用散列函数实现

时间:2012-02-11 21:27:23

标签: c bloom-filter universal-hashing

使用布隆过滤器模拟集合交叉近似。我已经尝试了很多简单的哈希函数来将值散列到过滤器。但它不擅长避免碰撞。所以有人建议使用通用哈希函数。但我不知道它是如何工作的。我的程序只是将密钥传递给哈希函数,哈希函数返回哈希值。任何人都可以帮我代码吗? 感谢

1 个答案:

答案 0 :(得分:0)

与bloom过滤器一起使用时,不要担心哈希函数的冲突。在这种情况下,您不必处理碰撞。只是得到k不同的函数,当你插入一个元素时,在m位数组中设置k位。在查询时,您再次使用所有k个哈希函数来检查所有k位;如果未设置其中任何一个,则搜索为假。如果所有这些都设置好了,你就不能得出任何结论(假阳性结果)。这在wiki中清楚地解释了:

http://en.wikipedia.org/wiki/Bloom_filter