python 求解排列组合

在 Python 中,可以使用标准库 math 中的 factorial 函数来求解排列组合数。排列组合数通常指的是组合数(C(n, k))和排列数(P(n, k))。

组合数 C(n, k)
组合数是从 n 个不同元素中,任取 k(0 ≤ k ≤ n)个元素作为一组的组合方式的总数。公式为:

\(C(n, k) = \frac{n!}{k! \times (n-k)!}\)

其中 \(n!\) 是 n 的阶乘,\(k!\) 是 k 的阶乘。

排列数 P(n, k)
排列数是从 n 个不同元素中,按照一定顺序任取 k(0 ≤ k ≤ n)个元素的排列方式的总数。公式为:

\(P(n, k)= \frac{n!}{(n-k)!}\)

import math

def combination(n, k):
    """计算组合数 C(n, k)"""
    return math.factorial(n) // (math.factorial(k) * math.factorial(n - k))

def permutation(n, k):
    """计算排列数 P(n, k)"""
    return math.factorial(n) // math.factorial(n - k)

# 示例
n = 1000
k = 50
print(f"C({n}, {k}) =", combination(n, k))  # 组合数
print(f"P({n}, {k}) =", permutation(n, k))   # 排列数
posted @ 2023-12-07 11:50  X1OO  阅读(493)  评论(0)    收藏  举报