
# 用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分之一
回复评论