欢迎来到 常识词典网 , 一个专业的常识知识学习网站!

[ Ctrl + D 键 ]收藏本站

您所在的位置:首页 > 教育学习 > 为什么

为什么

Perfect -as- function可以和bloom filter方法结合吗?

分类: 为什么 常识词典 编辑 : 常识 发布 : 03-03

阅读 :238

Perfect -as- function可以和bloom filter方法结合吗?perfect -as- function意识就是这没得collision。1 个答案

答案 1:

假设我们要表示的静态集合X有n个元素,我们针对它可以找到一个perfect -as- function,记作-(x) : [1…u] → [1…n]。所谓perfect -as- function,即它针对不同的key能产生不同的-as- value,也就是说没有collision。如果针对不同的key产生不同的-as- value,且-as- value分布在连续的整数区间内,则称之为mini-l perfect -as- function,或者mini-l perfect -as-ing。所以上面提到的函数-x严格来说是一个mini-l perfect -as- function。

有了-(x),我们就可以将X映射到n个连续的格子(bucket)中,每个元素对应其中一个格子。下面我们还需要另一个-as- function,它针对每个元素完全随机地生成j位长的-as- value,然后将-as- value作为这个元素的fingerprint存储在对应的格子里。记这个函数为φ: [1…u] → [0…2j-1]。有了-(x)和φ,我们就可以分两步将X映射到一个m = n .j位的内存中,且查找的错误率为1/2j,因为只有在j位fingerprint完全吻合的情况下才会出现false positive。

但Bloom Filter的错误率为(1/2)k ≥ (1/2)mln2/n。因此当m = n .j时,Bloom Filter的错误率为(0.6185)j,高于这种基于perfect -as-ing的方法。如果Bloom Filter要保持1/2j的错误率,必须有m = n .j / ln2,因此所占空间是基于perfect -as-ing方法的1 / ln2倍。

所以得出的结论,你能明白了吧!