Algorithm 为什么bloom过滤器对所有k哈希算法使用相同的数组

Algorithm 为什么bloom过滤器对所有k哈希算法使用相同的数组,algorithm,bloom-filter,Algorithm,Bloom Filter,我知道为了减少单个哈希冲突导致误报的可能性,bloom过滤器使用多个(k)哈希 使用k数组不是更有益吗?每个哈希算法使用一个数组,这样如果同时使用算法A将多个输入键映射到同一个值并存储在同一个数组单元中,然后使用alorithm B将另一个键映射到同一个值-这是一个有价值的信息,应该单独标记。 我认为大小为m/k的k数组应该比大小为m的单个数组给出更好的结果。 我错了吗?假设k@MooingDuck大小m的数组的内存使用量与k大小m/k的数组的内存使用量相同:-)然而一个令人惊讶的事实是,如果H

我知道为了减少单个哈希冲突导致误报的可能性,bloom过滤器使用多个(k)哈希

使用k数组不是更有益吗?每个哈希算法使用一个数组,这样如果同时使用算法A将多个输入键映射到同一个值并存储在同一个数组单元中,然后使用alorithm B将另一个键映射到同一个值-这是一个有价值的信息,应该单独标记。 我认为大小为m/k的k数组应该比大小为m的单个数组给出更好的结果。
我错了吗?

假设
k@MooingDuck大小
m
的数组的内存使用量与
k
大小
m/k
的数组的内存使用量相同:-)然而一个令人惊讶的事实是,如果
H
K
是两个独立的好散列函数,且
K
从不产生
0
,那么您可以使
K
函数成为
H(x)
H(x)+(K-1)K(x)
(所有操作mod code>m
)布卢姆过滤器可能工作良好。这是一个显著的性能提升,因为计算好的散列函数比算术要昂贵得多。但是,如果算法分布不均匀,这确实很重要。在这种情况下,算法a中有大量冲突的值与算法的冲突不同B@akiva如果您有一个基于散列的数据结构,并且有一个散列不能正常工作,那么散列结构就不能正常工作。这是预料中的。@akiva你知道a是什么吗?这是讨论的主题,一个哈希函数不足以满足与哈希函数不能正常工作无关的原因。基于散列的数据结构的另一个示例是,设计时需要多个散列函数。