【问题标题】:universal hash function implementation for bloom filters in CC中布隆过滤器的通用哈希函数实现
【发布时间】:2012-03-03 21:24:29
【问题描述】:

我正在使用布隆过滤器模拟集合交集近似。我尝试了很多简单的散列函数来将值散列到过滤器。但它不擅长避免碰撞。所以有人建议了一个通用的哈希函数。但我不确定它是如何工作的。我的程序旨在仅将密钥传递给散列函数,散列函数返回散列。谁能帮我写代码? 谢谢

【问题讨论】:

  • 具体是什么问题?
  • 你走错了路。如果你有一个完美的通用散列函数,那么使用布隆过滤器将毫无意义。如果你有不完美的,它们会很有用。而非通用的,它需要一组散列函数。

标签: c bloom-filter universal-hashing


【解决方案1】:

当与布隆过滤器一起使用时,不必担心散列函数的冲突。在这种情况下,您不必处理碰撞。当您插入一个元素时,只需获取 k 个不同的函数即可在 m 位数组中设置 k 位。在查询时,您再次使用所有 k 哈希函数来检查所有 k 位;如果其中任何一个未设置,则搜索为假。如果所有这些都设置了,您将无法得出任何结论(误报结果)。这在 wiki 中有明确的解释:

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

【讨论】:

    猜你喜欢
    • 2014-11-10
    • 2012-08-10
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    相关资源
    最近更新 更多