zoukankan      html  css  js  c++  java
  • 布隆过滤器

    可运用于   网页黑名单系统     垃圾邮件过滤系统      爬虫的网址判重系统等数据量很大的问题

    --好的哈希函数能将很多输入均匀地分布在bit array上,将所有值%m,可以分布到0~m-1上。处理过程如上图所示,一个对象经过k个哈希函数处理后,得到k个值,根据这k个值将对应的bit做标记。处理完所有输入之后,一个布隆过滤生成结束。

    --检查阶段,对于一个输入a,如果,经过哈希处理后有一个bit没有被标记,那么该输入就不存在测试集合中,反之,则存在。

    但是,如果测试集合很多,那么bit array 可能大部分被标记,即使某一个输入并不是测试集合中的记录,但是很有可能他所对应的bit都是标记过的。要排除这种情况,就要合理地设计bit array 的大小m,哈希函数的个数k,针对给定的失误率p,就有以下公式:

         m = -(n*lnp)/(ln2)2

         k = ln2 * (m/n)      其中n为测试集合中记录条数

       

  • 相关阅读:
    IOS8修改状态栏颜色
    iOS文件存储路径规定
    iOS+HTML5
    调用电话/获取通讯录
    iOS高级必备
    CoreData
    IOS 中的CoreImage框架
    CoreText
    CoreGpaphics
    iOS多线程 NSThread/GCD/NSOperationQueue
  • 原文地址:https://www.cnblogs.com/lp3318/p/5646692.html
Copyright © 2011-2022 走看看