我可以找到关于混淆或查找表的散列字符串的大量信息,其中避免碰撞是主要关注点。我正在尝试将散列函数放在一起以实现负载平衡,我希望将一组未知的字符串放入任意数量的具有相对均匀分布的桶中。预计会发生冲突(甚至是期望的)。
我的直接用例是应用程序中的负载分配,我希望应用程序的每个实例在半小时的不同时间触发,而不需要任何有关其他实例的状态信息。所以我试图将字符串哈希到从0到29的整数值。但是,一般方法具有更广泛的应用,具有不同目的的不同int范围。
任何人都可以提出建议,或者指向可以涵盖哈希生成的这个小角落的文档吗?
我选择的语言是python,但我可以阅读最常见的语言,因此任何事情都应该适用。
答案 0 :(得分:4)
你可能会考虑一些简单的事情,比如adler32()算法,只需要修改桶大小。
import zlib
buf = 'arbitrary and unknown string'
bucket = zlib.adler32(buf) % 30
# at this point bucket is in the range 0 - 29