0

假设我有一个包含 100,000 个或多或少随机字符串的数据库,我想从每个字符串中生成一个介于 1 到 500 之间的数字。

我的方法应该始终生成相同的数字(给定相同的字符串),并且应该是从 1 到 500 的数字的均匀分布。

有任何想法吗?

4

2 回答 2

1

好像你需要一个散列函数。您可以使用crc32模运算符

echo abs(crc32("hello world")) % 500 + 1;
于 2013-03-21T09:46:39.340 回答
0

你也可以使用类似的东西:

function string_to_decimal($hex_str)
{
    $arr = str_split($hex_str, 4);
    foreach ($arr as $grp) {
        $dec[] = str_pad(hexdec($grp), 5, '0', STR_PAD_LEFT);
    }
    return implode('', $dec);
}
于 2014-02-11T15:36:19.823 回答