漫画:高效的布隆算法

640?wx_fmt=gif

作者 | 小小小咖

责编 |伍杏玲

x星球经过和y星球的激战后,x星球已经无法居住,重建需要很长的时间,因此迁移到why星球上。

640?wx_fmt=png

640?wx_fmt=png

假设每个人IP代表不同的用户。

640?wx_fmt=png

一个B代表一个字节,一个字节8位,即8个二进制数,1GB=1024MB=1024*1024KB=1024*1024*1024B。

640?wx_fmt=png

IP如何转成int类型。每段均为最大值的IP为255.255.255.255,8位正好可以表示一个255大小的数字,因此每8位表示一个数字,IP一共是4段,正好32位。

640?wx_fmt=png

255 * 255 * 255 * 255 = 4228250625,4228250625/(1024*1024*8)=504。

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

f1,f2,f3代表3个不同的hash函数。箭头指向的地方代表通过hash函数计算出的hash值同时也是在位图中的位置。

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

另外一般情况下不能从布隆过滤器中删除元素,由于有一些字符串计算的hash值可能会相同,此时我们会想到,把每个位置存上对应的次数,删除元素的时候同时减1,前面我们说过会有误判的情况,所以要安全的删掉元素不是这么简单。

本文主要讲解布隆过滤器的算法思想,具体的实现我们可以去看guava中的BloomFIlter。

640?wx_fmt=png

如何在短时间内成为Python工程师?

https://edu.youkuaiyun.com/topic/python115?utm_source=cxrs_bw

640?wx_fmt=jpeg

 热 文 推 荐 

内存 60 年变迁史

漫画:什么是希尔排序?

面对华为,新 iPhone 很尴尬…… | 每日趣闻

程序员踩坑之旅:将 75000 行 iOS 原生代码迁移到 Flutter!

上云难?TA霸气回应:不要你觉得,一键上云 so easy!

裴健等9名华人当选加拿大皇家学会院士

Python微信远程控制摄像头-拍摄女朋友坐电脑前聊天时表情

AI大神如何用区块链解决模型训练痛点, AI+区块链的正确玩法原来是这样…… | 人物志

首批共享单车死于 2019

640?wx_fmt=png

你点的每个“在看”,我都认真当成了喜欢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值