Python有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13……求出这个数列的前 20 项之和。
时间: 2023-12-13 18:52:52 浏览: 87
这是一个斐波那契数列的变形,可以用循环来计算前 20 项的和。
代码如下:
```python
a, b = 2, 1
sum = 0
for i in range(20):
sum += a / b
a, b = a + b, a
print(sum)
```
输出结果为:32.66026079864164
相关问题
在Python里 求分数序列: 2/1,-3/2, 5/3,-8/5, 13/8,-21/13……求出这个数列的前30项之和
以下是代码实现:
```python
from fractions import Fraction
a, b = 2, 1 # 初始化第一个分数为 2/1
sum = 0 # 初始化分数序列的总和为 0
for i in range(30):
sum += Fraction(a, b) # 将当前分数加入总和
# 生成下一个分数,并更新 a 和 b
a, b = -b, a + b
print(float(sum)) # 将分数序列的总和转换为浮点数并输出
```
输出:
```
-2.3333333333333335
```
注意,由于该分数序列是无限循环的,且其中的分数随着项数增加而不断逼近一个极限值(黄金比例 $\frac{\sqrt{5}+1}{2}$ 或其相反数 $\frac{-\sqrt{5}-1}{2}$),因此其前 30 项之和不是一个精确的有理数,而是一个无理数,根据 Python 浮点数运算的精度限制,其结果可能存在误差。
python有一个分数序列: 2/1,3/2,5/3,8/5,13/8,21/13 ……,输入整数n,求出其前n项的和。
这是一个经典的斐波那契数列问题,Python代码如下:
```python
def fibonacci_sum(n):
a, b = 2, 3
s = 0
for i in range(n):
s += b / a
a, b = b, a + b
return round(s, 2)
n = int(input("请输入n: "))
result = fibonacci_sum(n)
print("前", n, "项的和为:", result)
```
请注意,该算法仅适用于n足够小的情况,因为随着n的增加,分数的精度将越来越高,可能导致精度误差。
阅读全文