前言
前两天, 一个大学同学问我布隆过滤器, 我本想反手甩他一篇我写的文章, 尴尬的是我找了找发现没有写过.......这二进制1位就能解决的问题, 没必要用int32位啊. 将上面的数组形式转换成位的操作, 其他思路均不变.
再来算一笔账, 一个链接只需要1位存储, 一亿数据存储需要 11.9MB....至此, 布隆过滤出来了. 将一个链接, 通过n个不同的hash函数, 生成对应的n个索引, 如果n个索引的值均为1, 则说明存在其中, 否则不在.
?...介绍完毕, 这就是布隆过滤器了.
完事
看了上面, 布隆的基本概念也齐活了. 布隆的特点如下:
说你不在, 你一定不在
说你在, 你可能在
其适合于这种允许存在一定误判的场景....看了布隆过滤器, 其涉及的大小只有两个, 1. 数组的大小. 2. hash函数的个数. 而选取合适的值就可以尽量的降低误判概率. 涉及高深的数学领域, 咱也不太懂.