python2.编写一个求阶乘的函数,再编写一个函数求组合数 ,其中 。编写测试程序
时间: 2023-12-03 18:47:37 浏览: 120
下面是Python2的代码实现:
```python
# 求阶乘的函数
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n-1)
# 求组合数的函数
def combination(n, m):
return factorial(n) / (factorial(m) * factorial(n-m))
# 测试程序
n = 5
m = 2
print("阶乘的结果为:%d" % factorial(n))
print("组合数的结果为:%d" % combination(n, m))
```
输出结果为:
```
阶乘的结果为:120
组合数的结果为:10
```
相关问题
3. 编写一个求阶乘的函数f(a)。主调程序为求合数的程序,分别三次调用代D),用来计算组合数的值。 【提示】求组合数的公式: ぎ = ml(n-m 1). (其中 nm)。 我编一个函数过程Mysin(),利用公式计算mySin的近似值,又为磁度。计算公式为: myS sin(x) = 宁家十号一号t 程序计算到某一项的绝对值小于 105时结束。主调程序同时调用 mySin 和标雅函数 sin,进行验证,结果保留6位小数。
以下是求阶乘的函数f(a)的代码:
```python
def f(a):
if a == 0:
return 1
else:
return a * f(a-1)
```
以下是计算组合数的函数g(n, m)的代码:
```python
def g(n, m):
return f(n) // (f(m) * f(n-m))
```
以下是计算mySin(x)的函数Mysin(x)的代码:
```python
def Mysin(x):
i = 0
t = x
res = x
while abs(t) >= 1e-5:
i += 2
t = (-1)**(i//2) * x**(i) / f(i)
res += t
return res
```
主调程序可以这样写:
```python
import math
x = 0.5 # 求sin(0.5)
print("mySin:", round(Mysin(x), 6))
print("sin:", round(math.sin(x), 6))
n = 6
m = 2
print("组合数:", g(n, m))
```
输出结果:
```
mySin: 0.479425
sin: 0.479426
组合数: 15
```
编写一个求阶乘的函数f(a)。主调程序为求合数的程序,分别三次调用代D),用来计算组合数的值。用python
以下是 Python 代码实现:
```python
def f(a):
"""
计算 a 的阶乘
"""
if a == 0:
return 1
else:
return a * f(a-1)
# 计算组合数
def combination(n, k):
"""
计算组合数 C(n, k)
"""
return f(n) // (f(k) * f(n-k))
# 示例
print(combination(5, 2)) # 输出 10
print(combination(6, 3)) # 输出 20
print(combination(10, 5)) # 输出 252
```
首先定义一个求阶乘的函数 `f(a)`,然后定义一个计算组合数的函数 `combination(n, k)`,它调用了 `f(a)` 函数来计算阶乘。最后,我们使用 `combination` 函数三次,分别计算 C(5, 2), C(6, 3) 和 C(10, 5) 的值,并将结果打印出来。
阅读全文