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)) # 排列数

浙公网安备 33010602011771号