# 用python实现排列组合C(n,m) = n!/m!*(n-m)! |
# 求阶乘,递归 |
def get_value(n): |
if n = = 1 : |
return n |
else : |
return n * get_value(n - 1 ) |
# 求组合数 |
def gen_last_value(n, m): |
first = get_value(n) |
print ( "n:%s value:%s" % (n, first)) |
second = get_value(m) |
print ( "m:%s value:%s" % (m, second)) |
third = get_value((n - m)) |
print ( "n-m:%s value:%s" % ((n - m), third)) |
return first / (second * third) |
if __name__ = = "__main__" : |
# 双色球组合数 |
# 红球33选6 |
# 蓝球16选1 |
rest = gen_last_value( 33 , 6 ) * gen_last_value( 16 , 1 ) |
print ( "双色球组合数:" , rest) |
输出: |
n: 33 value: 8683317618811886495518194401280000000 |
m: 6 value: 720 |
n - m: 27 value: 10888869450418352160768000000 |
n: 16 value: 20922789888000 |
m: 1 value: 1 |
n - m: 15 value: 1307674368000 |
双色球组合数: 17721088.0 |
高级设计师
by: Python自学 发表于:2022-10-27 02:42:26 顶(2) | 踩(0) 回复
双色球中奖概率:17721088分之一
回复评论