【发布时间】:2018-07-21 11:36:35
【问题描述】:
我正在实现一个简单的布隆过滤器作为练习。
布隆过滤器需要多个哈希函数,而出于实际目的,我没有。
假设我想要 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)
}
如果不是,那么有什么简单、有用的方法来解决这个问题?我想要一个解决方案,如果需要的话,我可以轻松地扩展更多的哈希函数。
谢谢
【问题讨论】:
标签: algorithm hash bloom-filter murmurhash