有没有办法设计哈希,以便键的某些子集有目的地映射到相同的值(冲突)?
例如,如果我想要将64位int A的所有(popcount> = 4)子集映射到X,并将B映射到Y等同样的子集
我认为如果由于碰撞我只有足够的钥匙,我可以节省一些内存。
答案 0 :(得分:0)
使用模数运算符,并将64位值除以hashKeys集的大小,如下所示:
hashKey = _64BitValue mod popcount
我不知道你使用的语言是什么,但许多现代语言使用%作为模数运算符,有些使用" mod"。
例如,在java中它看起来像:
long hashKey = _64BitValue % popcount;
这将在您的密钥上均匀分配随机的64位值。