0

我可以找到大量关于用于混淆或查找表的哈希字符串的信息,其中避免冲突是主要关注点。为了负载平衡,我正在尝试组合一个散列函数,我想将一组未知的字符串放入任意少量且分布相对均匀的存储桶中。预计会发生碰撞(甚至是期望的)。

我的直接用例是应用程序中的负载分配,我希望应用程序的每个实例在半小时的不同时间触发,而不需要有关其他实例的任何状态信息。所以我试图将字符串散列为从 0 到 29 的整数值。但是,一般方法具有更广泛的应用,不同的 int 范围用于不同的目的。

任何人都可以提出建议,或者指出我将涵盖哈希生成这个小角落的文档吗?

我选择的语言是 python,但我可以阅读最常见的语言,所以任何东西都应该适用。

4

1 回答 1

4

Your might consider something simple, like the adler32() algo, and just mod for bucket size.

import zlib

buf = 'arbitrary and unknown string'

bucket = zlib.adler32(buf) % 30

# at this point bucket is in the range 0 - 29
于 2013-07-12T02:34:19.877 回答