输入m,n,使用python计算Cmn,不能使用comb函数
时间: 2023-02-06 21:52:19 浏览: 336
我们可以使用以下代码来计算组合数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。
相关问题
使用python代码,输入m,n,计算组合数Cmn
在 Python 中,可以使用 math 库中的 factorial 函数来计算阶乘,然后利用组合数的定义 C(m, n) = m! / (n! * (m-n)!) 计算组合数。
代码如下:
```
import math
def combination(m, n):
return math.factorial(m) / (math.factorial(n) * math.factorial(m-n))
# 例如计算 C(5, 3) 的值
print(combination(5, 3))
```
输出结果为:
```
10.0
```
注意:在计算组合数时,由于组合数的定义是分母中含有阶乘,因此最终的结果可能是浮点数。如果希望得到整数结果,可以使用 int 函数将结果强制转换为整数。
例如:
```
print(int(combination(5, 3)))
```
输出结果为:
```
10
```
编写函数,输入n和m的值,计算Cmn
可以使用以下公式计算组合数 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。
阅读全文