2024-04-28 19:30:26 发布
网友
我想选一个随机数,然后用抽奖系统的形式来表示这个数字。例如,彩票系统有7组从01到40的2位数数字,总的可能组合为16384000000(40到7次方)。如果我随机选择一个以10为基数的数字,比如453867221,我如何用从01到40的7组2位数字来表示呢?在
我选择的编程语言是Python,尽管任何语言/伪语言都会有所帮助。在
标准库的random.sample从没有替换的总体中选择n个值:
random.sample
>>> import random >>> ' '.join('{:02d}'.format(n) for n in random.sample(xrange(1,41),7)) '25 19 15 09 01 26 06'
但这正是你所要求的,包括重复编号的可能性:
结果:
01 01 01 01 01 01 01 40 40 40 40 40 40 40 18 23 27 14 23 31 38
所以你有40个基数和7个40个基数“数字”。将它们转换为整数相对简单(我使用显式循环使事情更清楚):
digits = [12, 5, 39, 1, 40, 8, 17] total = 0 for digit in digits: total = total * 40 + (digit-1)
转换回正相反:
标准库的
random.sample
从没有替换的总体中选择n个值:但这正是你所要求的,包括重复编号的可能性:
^{pr2}$结果:
所以你有40个基数和7个40个基数“数字”。将它们转换为整数相对简单(我使用显式循环使事情更清楚):
转换回正相反:
^{pr2}$相关问题 更多 >
编程相关推荐