将整数散列为字母数字而不发生冲突
Hashing integers to alphanumeric with no collision
您知道将长数字字符串转换为较短字母数字的哈希方法吗?我需要从 3 个字符串中获取一个最大长度为 10 的唯一字符串,总共 33 个数字。
您不能将所有可能的长度为 33 的十进制序列 1:1 映射到长度为 10 的具有合理字母大小的字母数字字符串(您需要字母大小为 2000:10^33 = x^10 => x~1996
)
但是对于十进制序列的有限已知集 - 您可以计算perfect hash并在适当的系统中表示哈希值(例如:在36基数中使用0..9, A..Z
个字符)
您知道将长数字字符串转换为较短字母数字的哈希方法吗?我需要从 3 个字符串中获取一个最大长度为 10 的唯一字符串,总共 33 个数字。
您不能将所有可能的长度为 33 的十进制序列 1:1 映射到长度为 10 的具有合理字母大小的字母数字字符串(您需要字母大小为 2000:10^33 = x^10 => x~1996
)
但是对于十进制序列的有限已知集 - 您可以计算perfect hash并在适当的系统中表示哈希值(例如:在36基数中使用0..9, A..Z
个字符)