编写python函数,使用递归方法求 C(n, k) 。
时间: 2023-06-18 15:05:43 浏览: 157
有关C语言的递归算法
可以使用以下公式来计算组合数 C(n, k):
C(n, k) = C(n-1, k-1) + C(n-1, k)
其中,C(n, k) 表示从 n 个不同元素中选取 k 个元素的组合数。
下面是使用递归方法计算组合数 C(n, k) 的 Python 代码:
```python
def C(n, k):
if k == 0 or k == n:
return 1
else:
return C(n-1, k-1) + C(n-1, k)
```
在递归函数中,如果 k=0 或 k=n,直接返回 1;否则,根据公式递归计算 C(n-1, k-1) 和 C(n-1, k) 的值,并将它们相加即可。
可以通过以下代码测试函数:
```python
print(C(5, 2)) # 输出 10
print(C(10, 3)) # 输出 120
```
注意,递归方法虽然简单,但是效率较低,因为会重复计算一些子问题,导致时间复杂度较高,因此在实际应用中应该避免过度使用递归。
阅读全文