编写递归算法,求解m(i)。m(i)=1/3+2/5+3/7+4/9+5/11+......+i
时间: 2024-01-10 20:04:51 浏览: 62
java代码-使用Java递归求和1+2+3+...+n的源代码
首先,我们可以看到 m(i) 是由一个分数序列递增而成,其中分子以 1 开始,分母每次加 2。因此,可以通过递归计算 m(i)。
递归式如下:
m(i) = 1/3 (i = 1)
m(i) = (i-1)/(2i-1) * m(i-1) (i > 1)
这里,第一个式子表示当 i 为 1 时,m(i) 应为 1/3;第二个式子表示当 i 大于 1 时,m(i) 应为 (i-1)/(2i-1) 与 m(i-1) 的乘积。
下面给出 Python 实现代码:
def calculate_m(i):
# 当 i 为 1 时,直接返回 1/3
if i == 1:
return 1/3
# 当 i 大于 1 时,计算 m(i)
else:
return (i-1)/(2*i-1) * calculate_m(i-1)
# 测试
i = 5
print(f"m({i}) = {calculate_m(i)}") # 输出 m(5) 的值
阅读全文