gpt4 book ai didi

algorithm - 布隆过滤器及其多个哈希函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:30:44 25 4
gpt4 key购买 nike

我正在实现一个简单的布隆过滤器作为练习。

Bloom 过滤器需要多个哈希函数,出于实际目的我没有。

假设我想要 3 个散列函数,仅获取我正在检查其成员资格的对象的散列、对其进行散列(使用 murmur3)然后添加 +1、+2、+3(对于 3 种不同的哈希值),然后再对它们进行哈希处理?

由于 murmur3 函数具有非常好的雪崩效应(真正分散了结果),这对于所有目的来说难道不是合理的吗?

伪代码:

function generateHashes(obj) {
long hash = murmur3_hash(obj);
long hash1 = murmur3_hash(hash+1);
long hash2 = murmur3_hash(hash+2);
long hash3 = murmur3_hash(hash+3);
(hash1, hash2, hash3)
}

如果不是,那么简单、有用的方法是什么?我希望有一个解决方案可以让我在需要时轻松扩展更多哈希函数。

最佳答案

据我所知,通常的做法是不实际使用多个哈希函数。相反,散列一次并将生成的散列分成 2 个、3 个或您想要用于 Bloom 过滤器的部分。因此,例如创建一个 128 位的散列并将其拆分为 2 个散列,每个 64 位。

https://github.com/Claudenw/BloomFilter/wiki/Bloom-Filters----An-overview

关于algorithm - 布隆过滤器及其多个哈希函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48727174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com