我正在实施一个简单的布隆过滤器作为练习。
布隆过滤器需要多个哈希函数,出于实际目的,我没有。
假设我想要 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)
}
如果不是,那将是一种简单、有用的方法吗?我想要一个解决方案,如果需要,我可以轻松扩展更多哈希函数。
谢谢