Python递归求组合数
时间: 2024-11-04 08:06:17 浏览: 0
python利用递归方法实现求集合的幂集
Python中可以使用递归来计算组合数(Combinatorics),即从n个不同元素中取出k个元素的不同排列数目,通常表示为`C(n, k)`或`n choose k`。这里我们使用阶乘公式来简化计算:
对于`C(n, k) = n! / (k!(n-k)!)`,其中`n!`代表n的阶乘。
递归函数的基本思路是这样的:
- 如果k等于0或者n等于k,那么只有一个组合,即`C(n, k) = 1`。
- 否则,`C(n, k) = C(n - 1, k - 1) + C(n - 1, k)`,因为可以选择第n个元素加入前k-1个组合,也可以选择不加入直接作为k个组合的一个元素。
以下是使用递归实现的Python代码示例:
```python
def combination(n, k):
if k == 0 or k == n:
return 1
else:
return combination(n - 1, k - 1) + combination(n - 1, k)
# 示例
n = 5
k = 3
result = combination(n, k)
print(f"C({n}, {k}) = {result}")
阅读全文