【问题标题】:Bloom filter in JavaJava中的布隆过滤器
【发布时间】:2011-09-22 17:41:25
【问题描述】:

基本上,我必须实现一个布隆过滤器并使用 char 'a' to 'z' 和 'A' to 'Z' 进行测试(简单易行)。

然后我必须测试误报,但要求说使用“aa”到“ZZ”(字符串)来计算误报(未完成)。

知道这意味着什么吗?

【问题讨论】:

    标签: java hash bloom-filter


    【解决方案1】:

    误报需要实际的数据集,我认为您的教授的意思是:现在将 'a'-'z','A'-'Z' 添加到过滤器(实际数据)中,检查所有字符串“ aa"-"ZZ",统计误报的数量(所有的肯定都是假的,因为没有一个在数据中)并提取比率:#false_positives/#strings_in_range("aa","ZZ")

    编辑:在 cmets @Bill 询问如何迭代“aa”-“ZZ”,这是一个简单的代码快照,说明如何做到这一点。

    Set<String> set = new HashSet<String>();
    for (Character c = 'a';c<='z';c++) { 
         String lower = c.toString();
         String upper = c.toString().toUpperCase();
         for (Character k = 'a';k<='z';k++) { 
                set.add(lower + k.toString());
                set.add(lower + k.toString().toUpperCase());
                set.add(upper + k.toString());
                set.add(upper + k.toString().toUpperCase());
         }
    }
    

    【讨论】:

    • 这并没有真正为我解决任何问题,抱歉。我添加了字符,那很好。我不明白的是为什么我们使用字符串来计算误报,哈希函数需要一个 int。
    • 这个答案假设哈希函数可以处理字符串作为输入,以及字符。
    • 好的,那我该如何从“aa”迭代到“zz”呢?
    • @Bill:这是一个不同的问题,但只需构建它们并插入到集合中,请参阅代码示例的编辑。
    • @Bill:请参阅编辑如何构建包含这些字符串的Set&lt;String&gt;。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 2017-03-17
    • 2017-05-07
    • 1970-01-01
    • 2010-10-12
    相关资源
    最近更新 更多