【发布时间】:2016-10-05 23:08:47
【问题描述】:
这就是问题所在,我需要将一个 ID(定义为长整数)转换为一个较小的字母数字标识符。详情如下:
- 问题上的每个人都作为一个唯一的 ID,一个大小为 13 的长整数(类似于 123123412341234)。
- 我需要生成此唯一 ID 的较小表示形式,即字母数字字符串,类似于 A1CB3X。问题是 5 或 6 个字符的长度不足以表示这么大的整数。
- 新 ID(例如 A1CB3X)在我们知道只有少数人(少于 500 人)存在的情况下应该是有效的。新 ID 在这一小部分人中应该是唯一的。
- 新 ID(例如 A1CB3X)应该是对原始 ID 进行计算的结果。这意味着将原始 ID 带到别处并应用相同的计算,我们应该得到相同的新 ID(例如 A1CB3X)。
- 应在将个人添加到集合时进行此计算,这意味着当时并不知道属于该集合的所有个人。
关于如何解决此类问题的任何指示?
【问题讨论】:
-
生成的字母数字串中允许使用哪些字符?
-
它应该易于个人使用,所以像 A-Z 和 0-9 这样的东西会很棒。