【问题标题】:Bloom Filters - Implementing Hash Functions布隆过滤器 - 实现散列函数
【发布时间】:2014-04-29 00:29:22
【问题描述】:

这里是一个相当简单的问题。好的,所以我了解了使用布隆过滤器检查成员是否不是集合的一部分的基础知识,位数组的工作方式,哈希函数的使用方式以及等是计算出来的,但我在实现中没有得到的是你如何将字符映射到字节。

例如,假设我对输入 1 进行哈希处理,输出为 8,然后我将 bit8 设置为 1,以表明该成员是集合的一部分。您将如何使用 FNV 或 Jenkins' 之类的函数或任何返回字符和整数的哈希函数来执行此操作。如果这是一个愚蠢的问题,请毫不犹豫地告诉我,我只是没有得到其中的一些实施。谢谢!

【问题讨论】:

    标签: hash bloom-filter


    【解决方案1】:

    字符串是字符数组(char 数据类型),字符是 16 位或 8 位,具体取决于语言是使用 utf 还是 ascii。所以在伪代码中它看起来像这样:

    // ord() 表示序数,或者您可以使用类型转换。 变量 str:字符串; b:字节; str =“缩放” b = (字节)str[4]; //delphi 我会使用 b = ord(str[4]); // 现在 b 包含字母 m 的数字

    字符串只是数组,您可以这样使用它们。在 java 中,您只需使用 String.IndextoByte 或类似的东西。

    我写了一篇关于布隆过滤器的教程,如果你有兴趣 http://techeffigy.wordpress.com/2014/06/05/bloom-filter-tutorial

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多