[python]代码库
# 用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分之一
回复评论