defcombinations(n,m): result = 1 min,max=sorted((m,n-m)) for i inrange(n,0,-1): if i>max: result *= i elif i <= min: result = result // i return result
n个连续整数的积可被n的阶乘整除。
1 2 3 4 5
defcombinations(n,m): result = 1 for i inrange(m): result=result*(n-i)//(i+1) return result
从n个不同元素中取出m个元素的组合数与从n个不同元素中取出(n-m)个元素的组合数相等。
1 2 3 4 5
defcombinations(n,m): result = 1 for i inrange(min(n-m,m)): result=result*(n-i)//(i+1) return result