如何将随机数转换为另一种基本格式?

2024-04-28 19:30:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想选一个随机数,然后用抽奖系统的形式来表示这个数字。例如,彩票系统有7组从01到40的2位数数字,总的可能组合为16384000000(40到7次方)。如果我随机选择一个以10为基数的数字,比如453867221,我如何用从01到40的7组2位数字来表示呢?在

我选择的编程语言是Python,尽管任何语言/伪语言都会有所帮助。在


Tags: 语言系统数字编程语言形式基数位数彩票
2条回答

标准库的random.sample从没有替换的总体中选择n个值:

>>> import random
>>> ' '.join('{:02d}'.format(n) for n in random.sample(xrange(1,41),7))
'25 19 15 09 01 26 06'

但这正是你所要求的,包括重复编号的可能性:

^{pr2}$

结果:

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)

转换回正相反:

^{pr2}$

相关问题 更多 >