0
有没有一种方法可以设计一个散列,使某些键的子集有意映射到相同的值(冲突)?散列 - 目的冲突
例如,如果我希望所有(popcount> = 4)一些64位INT A的子集被映射到X,和相同的对于B映射到Y,等
我想我可以节省一些记忆,如果我只有足够的钥匙由于碰撞。
有没有一种方法可以设计一个散列,使某些键的子集有意映射到相同的值(冲突)?散列 - 目的冲突
例如,如果我希望所有(popcount> = 4)一些64位INT A的子集被映射到X,和相同的对于B映射到Y,等
我想我可以节省一些记忆,如果我只有足够的钥匙由于碰撞。
使用模运算,并通过一套HASHKEYS的大小将您的64位值,像这样:
hashKey = _64BitValue mod popcount
我不知道你正在使用什么语言,但许多现代语言使用%作为模数运算符,有些使用“mod”。
例如,在Java它看起来像:
long hashKey = _64BitValue % popcount;
这将均匀地分布在你的钥匙随机分配的64位值。