zoukankan      html  css  js  c++  java
  • BloomFilter——读数学之美札记

      之前接触过bitmap,读吴军先生的数学之美,看到了一个更强大的数据结构,布隆过滤器(Bloomfilter),赶紧记下来吧,忘了怪可惜的。

      bitmap的使用是很有局限性的,往往只能用于海量数值型数据查重,查漏。对于海量URL,字符串等等就显得无能为力了,这时候如果追求高效的时间复杂度O(k)(k一般是很小的常数,基本相当于O(1)),BloomFilter就有用武之地了。

      先说BF的缺点吧:仨字儿,不精确。什么意思呢?就是它不保证给出的结果一定为真,只能说非常可能是真的,这是概率性的,而且这个概率我们可以根据情况通过不复杂的运算给出来。

      BF的优点:1.时间复杂度低,速度快,仅次于hashmap,基本O(1)。2.空间复杂度低,一般要达到万分之一以下的错误率只需要hashmap的1/8甚至更少。3.有以上两点还不够吗?多少是多啊,要啥自行车啊。

    关于BF的具体细节网上一搜一大堆,这里不再赘述,给个链接,自己看:

    BloomFilter详解

    这里想试着写一下BloomFilter的谎报军情概率公式,网上的链接都是直接给公式,也不说怎么来的,这里试着推一下,字迹有点乱,身在星巴克,纸不多了,应该可以看清楚吧:

     

  • 相关阅读:
    C#代码动态编译、动态执行、动态调试
    php’s explode() 函数
    exec函数族
    在C语言中执行shell命令
    dmesg简介
    错误输出
    php’s json_decode函数
    使expect脚本传回返回值
    php’s fgets() 函数
    统计当前目录下的所有文件目录大小,不显示子目录与子文件
  • 原文地址:https://www.cnblogs.com/wangjunyan/p/5091509.html
Copyright © 2011-2022 走看看