排列数和组合数

代码

        def cal(n, k):
            if k<0 or k>n:
                return 0
            if k == 0 or k ==n:
                return 1
            k = min(k, n-k)

            res = 1
            for i in range(k):
                res = res * (n-i) // (i+1)

            return res

 

或者

import math
print(math.comb(5, 2))  # 输出 10

 

 

排列数

def permutation_count(n, k):
    if k < 0 or k > n:
        return 0
    res = 1
    for i in range(k):
        res *= (n - i)
    return res

或者

import math
math.perm(5, 3)   # 60

 

 
posted @ 2026-11-01 22:04  r1-12king  阅读(2)  评论(0)    收藏  举报