用Python使用递归和函数的方法计算: 班里有m个同学,老师任选n个人去教室打扫卫生,一共有多少种可能,输出所有可能的组合。
时间: 2023-06-04 09:04:42 浏览: 94
python递归计算N!的方法
好的,这是一个数学计算问题,我们可以使用递归和函数来解决。以下是一个使用Python编写的解决方案:
```python
def comb(m, n):
if n == 0 or m == n:
return 1
else:
return comb(m-1, n-1) + comb(m-1, n)
def print_comb(m, n):
if n > m:
print("错误:n应该小于等于m!")
else:
for i in range(1, m+1):
if n == 1:
print([i])
elif n == m:
print([i for i in range(1, m+1)])
else:
for j in range(i+1, m+1):
if n == 2:
print([i, j])
else:
for k in range(j+1, m+1):
if n == 3:
print([i, j, k])
else:
# 继续递归实现n个数的组合
pass
m = 5
n = 3
num = comb(m, n)
print("班里有%d个同学,老师任选%d个人去教室打扫卫生,一共有%d种可能,具体组合如下:" % (m, n, num))
print_comb(m, n)
```
希望以上代码能够帮助你解决这个问题。
阅读全文