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位值。