编写程序,计算组合数C(n,i),即从n个元素中任选i个,有多少种选法。python
时间: 2024-09-26 14:14:07 浏览: 40
算出从n个不同元素中取出m个元素(m≤n)的组合数——C语言代码
在Python中,可以使用`itertools`模块来计算组合数C(n,i),因为直接使用内置的`combinations`函数会生成所有可能的组合,但当我们只需要计数时,迭代器更为合适以节省内存。下面是一个简单的示例:
```python
import itertools
def combination_count(n, i):
"""
计算组合数 C(n, i)
"""
return sum(1 for _ in itertools.combinations(range(1, n+1), i))
# 示例:计算从50个数中选20个数的组合数
n = 50
i = 20
result = combination_count(n, i)
print(f"从{n}个元素中选{i}个的组合数是: {result}")
# 使用迭代器存储组合数而不是整个列表
# 这里仅用于展示,实际应用中不需要存储所有组合
all_combinations = (c for c in itertools.combinations(range(1, n+1), i))
# 排列组合的数量可以通过迭代器长度得到
# all_combinations_count = len(tuple(all_combinations))
```
阅读全文