模拟生成微软序列号
描述
微软产品一般都一个25位的序列号,是用来区分每份微软产品的产品序列号。产品序列号由五组被“-”分隔开,由字母数字混合编制的字符串组成,每组字符串是由五个字符串组成。如:
36XJE-86JVF-MTY62-7Q97Q-6BWJ2
每个字符是取自于以下24个字母及数字之中的一个:
B C E F G H J K M P Q R T V W X Y 2 3 4 6 7 8 9
采用这24个字符的原因是为了避免混淆相似的字母和数字,如I 和1,O 和0等,减少产生不必要的麻烦。
随机数种子函数语法为:random.seed(n)
输入格式
在2行中分别输入一个正整数:
第1个整数,代表要生成的序列号的个数
第2个正整数代表随机数种子
输出格式
指定个数的序列号
输入输出示例
输入 | 输出 | |
示例 1 |
2 10 |
P6KFE-RG2CW-V7M7T-3E79C-RH8YY QX9TJ-8QWG3-PJ8J7-YWTBH-BXFJP |
法一:
import random n = int(input()) seed = input() characters = 'BCEFGHJKMPQRTVWXY2346789' random.seed(seed) for _ in range(n): #创建空字符串 product_key = '' for _ in range(5): for _ in range(5): product_key += random.choice(characters) product_key += '-' #从第一个到倒数第二个,(去掉了最后一个'-') product_key = product_key[:-1] # Remove the trailing hyphen print(product_key)
法二:
import random n=int(input()) a=input() #使用字符而不使用列表 l='BCEFGHJKMPQRTVWXY2346789' random.seed(a) for i in range(n): #生成4组xxxxx- for i2 in range(4): #生成1组xxxxx- for i1 in range(5): print(random.choice(l),end='') print('-',end='') #再生成1组xxxxx for i3 in range(5): print(random.choice(l),end='') #输出一组序列号后换行 print("")