博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BloomFilter——读数学之美札记
阅读量:4606 次
发布时间:2019-06-09

本文共 560 字,大约阅读时间需要 1 分钟。

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

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

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

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

 

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

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

 

 

转载于:https://www.cnblogs.com/wangjunyan/p/5091509.html

你可能感兴趣的文章
大数除法
查看>>
mysql优化
查看>>
[ Python - 15 ] win7安装paramiko问题总汇
查看>>
Containerpilot 配置文件 之 Telemetry
查看>>
vue项目中使用百度地图的方法
查看>>
[LeetCode]Merge k Sorted Lists
查看>>
设计模式六大原则(5):迪米特法则
查看>>
BZOJ 2901: 矩阵求和
查看>>
c#设置button透明
查看>>
OpenStack控制节点上搭建Q版glance服务(step4)
查看>>
matplotlib 刻度,坐标轴不可见
查看>>
poj1631 Bridging signals
查看>>
CF540B School Marks
查看>>
2016级算法第五次上机-D.AlvinZH的学霸养成记III
查看>>
Sharepoin学习笔记—架构系列-- Sharepoint的四种执行模型 1
查看>>
【Python】解决测试依赖之 Mock模块的基本使用
查看>>
D. Green and Black Tea 贪心 + 构造
查看>>
Code First开发系列实战之使用EF搭建小型博客平台
查看>>
如何获取(GET)一杯咖啡——星巴克REST案例分析
查看>>
【LeetCode题意分析&解答】41. First Missing Positive
查看>>