编写函数,输入n和m的值,计算Cmn
时间: 2024-02-12 17:07:16 浏览: 274
可以使用以下公式计算组合数 Cmn:
Cmn = m! / (n! * (m-n)!)
其中,! 表示阶乘运算,即一个正整数的阶乘是指从1到这个数所有正整数的乘积。
下面是使用 Python 代码实现该函数:
```python
def combination(n, m):
"""
计算组合数 Cmn。
"""
if n < 0 or m < 0 or n > m:
return None
# 计算阶乘
def factorial(num):
if num == 0:
return 1
else:
return num * factorial(num - 1)
return factorial(m) / (factorial(n) * factorial(m - n))
```
对于输入 n=3, m=7,调用该函数可以得到:
```python
>>> combination(3, 7)
35.0
```
因此,C37 = 35。
相关问题
编写函数,输入n和m的值,计算Cmn=n!/m!(n-m)!
这个公式与组合数的定义不同,正确的公式应该是 Cmn = m! / (n! * (m-n)!),请参考我之前回答的答案。
下面是使用 Python 代码实现正确公式的组合数函数:
```python
def combination(n, m):
"""
计算组合数 Cmn。
"""
if n < 0 or m < 0 or n > m:
return None
# 计算阶乘
def factorial(num):
if num == 0:
return 1
else:
return num * factorial(num - 1)
return factorial(m) / (factorial(n) * factorial(m - n))
```
对于输入 n=3, m=7,调用该函数可以得到:
```python
>>> combination(3, 7)
35.0
```
因此,C37 = 35。
输入m,n,使用python计算Cmn,不能使用comb函数
我们可以使用以下代码来计算组合数Cmn:
def C(m, n):
if m < n:
return 0
if n == 0:
return 1
return C(m-1, n-1) + C(m-1, n)
这是一个递归函数,它使用杨辉三角的性质来计算Cmn。杨辉三角是一个二维数组,它的第i行第j列(从0开始编号)的值为Ci,j。它的性质是:Ci,j=Ci-1,j-1+Ci-1,j。
为了调用这个函数,你可以像这样输入m和n的值:
result = C(m, n)
这将返回Cmn的值。
例如,如果你想要计算C5,2,你可以输入:
result = C(5, 2)
这将返回10。
阅读全文