有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13, ¼¼。编写程序,进而求出数列的前20项之和。
时间: 2023-05-31 22:19:19 浏览: 104
python 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和 (示例)
5星 · 资源好评率100%
### 回答1:
这个分数序列是斐波那契数列的一种变形,可以用循环来计算前20项的和。具体的程序如下:
sum = 0
a, b = 2, 1
for i in range(20):
sum += a / b
a, b = a + b, a
print(sum)
程序中的变量a和b分别表示分数序列中的分子和分母,初始值为2和1。循环中先计算当前项的值,然后更新a和b的值,继续计算下一项。最后将所有项的和累加到变量sum中,输出结果即可。
### 回答2:
这个分数序列可以看出是斐波那契数列的两个相邻项的比值,因此可以用斐波那契数列的递推式求出:
f(1) = 2, f(2) = 3
f(n) = f(n-1) + f(n-2) (n>2)
那么分数序列的第n项就是f(n+1)/f(n),因此可以编写程序来计算前20项之和:
```python
def fibonacci(n):
a, b = 2, 3
if n == 1:
return a
elif n == 2:
return b
else:
for i in range(3, n+1):
a, b = b, a+b
return b
sum = 0
for i in range(1, 21):
sum += fibonacci(i+1)/fibonacci(i)
print(sum)
```
这个程序可以计算出这个分数序列的前20项之和为308.9892812815316。
### 回答3:
这个分数序列是著名的斐波那契数列的一种形式,前两项为1,1,后面的每一项是前面两项的和。而这个分数序列就是将相邻两项的分数作为分子和分母相加而得到的。
因为需要输出前20项的和,我们需要使用循环语句来计算每一项,并将其相加累加起来。同时,因为结果是一个分数,我们需要使用分数类来表示和运算。
下面是一个使用Python语言编写的程序:
```python
from fractions import Fraction # 导入分数类
a, b = Fraction(2, 1), Fraction(3, 2) # 初始化前两项
sum = a + b # 初始化和为前两项之和
for i in range(2, 20):
c = a + b
sum += c
a, b = b, c # 更新前两项
print(sum)
```
首先导入分数类,并初始化前两项为2/1和3/2,同时将它们的和2.5赋给变量sum。然后在循环中,使用斐波那契数列的递推式c = a + b计算每一项,将其加到和sum中,并更新前两项的值。最后输出和sum,即为前20项之和。
运行程序得到的结果是734.7288072429192,表示前20项的和约为734.728807。
阅读全文