如何使用5位数字(字母和数字)生成SAS和ID代码?前三个必须是字母,后两个必须是数字。
答案 0 :(得分:0)
您可以创建从0
到26^3 * 10^2 - 1
的整数到格式为AAA00
的字符串的唯一映射。 This wikipedia page很好地介绍了不同数值基的概念。
你的地图看起来像这样
value = 100 * (X * 26^2 + Y * 26^1 + Z * 26^0) + a * 10^1 + b * 10^0
其中X
,Y
& Z
是0
和25
之间的整数(可以表示为字母表中的字母),a
& b
是0
和9
之间的整数。
举个例子:
47416 = 100 * (0 * 26^2 + 18 * 26^1 + 6 * 26^0) + 1 * 10^1 + 6 * 10^0
使用:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
你得到:
47416 -> [0] [18] [6] (1) (6)
A S G 1 6
因此47416
可以表示为ASG16
。
要以编程方式执行此操作,您需要逐步将数字拆分为商和余数,然后通过基数(10和26)除以,将余数存储为输出的一部分,并使用商进行下一次迭代。 你可能想要使用这些功能:
可以找到一些类似(但稍微简单)的例子来启动here。
快走,如果你遇到一个新问题就卡住了。如果你提供一个详细的问题,代码显示你的进展,你被困的地方和原因的描述,你得到的任何错误或警告以及一些样本数据,你可能会得到SO的最佳回复。