我需要从一个 32 位数字创建一个 16 位哈希,并且我试图确定一个简单的模数 2^16 是否合适。
哈希将用于 2^16 条目哈希表中,以便快速查找 32 位数字。
我的理解是,如果数据空间的分布相当均匀,那么简单的 mod 2^16 就可以了——它不应该导致太多的冲突。
在这种情况下,我的 32 位数字是修改后的 adler32 校验和的结果,使用 2^16 作为 M。
所以,从一般意义上说,我的理解是否正确,如果我的数据分布均匀,可以使用简单的 mod n(其中 n 是哈希表大小)作为哈希函数?
具体来说,adler32 会为此提供足够随机的分布吗?