这是算法所说的内容。
hash = FNV_offset_basis
for each octet_of_data to be hashed
hash = hash * FNV_prime
hash = hash XOR octet_of_data
return hash
但是如果我有一组字符串那么我应该采取什么作为FNV_offset_basis,
以及要散列的每个八位字节数据的含义是什么。
表的大小应该是什么,比如说有N个字符串要进行哈希处理。
请帮助我修改字符串。
感谢。
答案 0 :(得分:1)
从上面评论中引用的网站
32 bit offset_basis = 2166136261
64 bit offset_basis = 14695981039346656037
使用与哈希宽度相对应的那个。
八位字节是一个8位字节。如果您使用的是带有8位字符的文本,则八位字节和一个字符是相同的。
桌子的大小取决于你;当然要确保它大于N!它越大,你应该预期的碰撞就越少。