每日10行代码125: 用python计算快乐8一等奖的中奖概率

先简单介绍下快乐8一等奖的规则:投注人从80个数中选10个,开奖时会从80个数中开出20个,如果选择的10个数均在开出的20个数中,那么就是中一等奖(也叫选十中十)。
那么中一等奖的概率是多少呢?这其实是数学中的概率问题。
解题方法:选求所有可能的投注情况,也就是从80个中选10个,这是一个标准的组合问题,结果是:1646492110120
可以用网上的组合计算器来计算:https://zh.numberempire.com/combinatorialcalculator.php
再求出所有可能中一等奖彩票数有多少,也就是从20个中选10个,结果是:
184756
1646492110120/184756 ≈ 8911711
也就是说,快乐8一等奖的中奖概率大概是891万分之一。
如果用python来计算的话,代码是这样的:

from scipy.special import comb
from fractions import Fraction   

all_reslut = comb(80,10).astype('uint64')
frst_prize = comb(20,10).astype('uint64')
#print(frst_prize,all_reslut)
f = all_reslut/frst_prize
#f2 = Fraction(frst_prize,all_reslut)
print(f) 
>>>
8911711.176470589

你可能感兴趣的:(每日10行代码,Python,python)