我正在尝试通过 PHP 解决以下问题。目的是根据整数种子生成一个唯一的 6 字符字符串,并包含预定义的字符范围。第二个要求是字符串必须随机出现(因此如果代码 1 为 100000,则代码 2 为 100001 和 3 100002 是不可接受的)
字符范围为:
- 大写 AZ 不包括:B、I、O、S 和 Z
- 0-9 不包括:0、1、2、5、8
所以如果我没记错的话,总共有 26 个字符。我的第一个想法是从编号 7962624 开始从 base 10 编码到 base 24。7962624 + 种子也是如此,然后 base24 编码该数字。
这给了我字符 0-N。如果我以以下方式替换结果字符串,则我满足第一个条件:
B=P, I=Q, 0=R, 1=T, 2=U, 5=V, 8=W
所以在这一点上,我的代码看起来像这样:
1=TRRRR, 2=TRRRT, 3=TRRRU
所以我对各位大师的问题是:我怎样才能创建一个行为一致的方法(因此给定整数的返回字符串总是相同的)并满足上述 2 个要求?我已经花了整整 2 天的时间在这上面,没有将 700,000,000 个代码转储到数据库中并随机检索它们,我完全没有想法。
斯蒂芬