有一类题目是是这样的:要求我们从n个数中选m个,问共有多少种取法。
如果是用C++写的话,要应用到Lucas定理,暴力阶乘会超时。
这里给大家介绍一个Python3.8 math库自带的函数math.comb(n, m) 可以用于解决上述问题
具体用法请参照:Python math.comb() 方法 | 菜鸟教程
可以一并看一下math.perm函数:Python math.perm() 方法 | 菜鸟教程 并注意区分二者的区别。
math.comb(n, m) =
math.perm(n, m) =
我们来看一下蓝桥杯官方是否支持这个函数。
这里选用蓝桥杯练习系统:“组合数取模”这道题,题目链接:“蓝桥杯”练习系统
Python3代码
from math import comb
n,m,p = map(int,input().split())
print(comb(n,m) % p)
评测结果
可以看到蓝桥杯官方是支持这个函数的
注:很多OJ的评测系统的Python版本可能较老,因此不支持这个函数,具体以蓝桥杯官方为准。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net