强力球是最近引起美国关注的彩票,因为当前的累积奖金(截至2016年1月11日)是历史上最大的乐透奖金,约为15亿美元。
强力球运动员从69个编号的白球中选择5个不同的数字,并从26个编号的红球中选择1个“强力球”数字。如果他们的五个白球选择与按任何顺序绘制的内容相匹配,并且选择了正确的“强力球”号码,他们将赢得大奖。
因此,赢得大奖的机会是1 (69 choose 5)*(26 choose 1)
或((69*68*67*66*65)/(5*4*3*2*1))*26
,即292,201,338中的1
没有人在2016年1月9日的最新抽奖中赢得大奖,但是也许有人会在美国东部时间2016年1月13日晚上10:59赢得下一张抽奖。
挑战
编写一个模拟强力球绘图的程序或函数,不输入任何内容,而是输出1至69之间的5个不同的随机数,然后输出1至26之间的1个随机的“ Powerball”数字(可以重复5个之一)初始数字)。
“强力球”数字应始终是输出中的最后一个数字,但其他前5个数字的顺序无关紧要。
这6个数字应以十进制输出,以空格分隔或换行符分隔,并带有一个可选的尾随换行符。输出中不允许使用逗号,方括号和其他字符。
因此,这些将是有效的输出(使用最后一张图中的数字):
32 16 19 57 34 13
32
16
19
57
34
13
所有292201338可能的结果都应该具有统一的可能性。您可以使用内置的伪随机数生成器,并假定它们符合此标准。
这是可在Python 2或3中使用的简单参考实现:
import random
print(' '.join(map(str, random.sample(range(1,70), 5) + [random.randint(1, 26)])))
以字节为单位的最短代码获胜。
请注意,我与强力球没有任何隶属关系,也不是真的建议您参加比赛。但是,如果您从这里的一个程序生成的数字中赢得任何收益,那么我相信我们很乐意听到这一消息。:D
5! = 5*4*3*2*1
多种方法可以安排5件事情,因此请您考虑。