有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。Python
时间: 2024-10-28 17:06:29 浏览: 22
python 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和 (示例)
5星 · 资源好评率100%
这种分数序列被称为Fibonacci数列的倒数形式。斐波那契数列的每一项是前两项的和,即 F(n) = F(n-1) + F(n-2),而这里的分数分母部分正好是对应的斐波那契数列的值。为了计算前20项的和,我们可以先生成前20项的分数,然后求它们的和。这里有一个Python脚本实现这一过程:
```python
def fibonacci_sequence(n):
fibs = [0, 1]
while len(fibs) < n:
fibs.append(fibs[-1] + fibs[-2])
return fibs
def inverse_fractions(fibs):
fractions = [(fibs[i], i+1) for i in range(len(fibs))]
return fractions
def sum_of_inverses(fractions):
total = sum(1 / fraction[0] for fraction in fractions)
return total
fibonacci_digits = fibonacci_sequence(21) # 获取前21项斐波那契数,因为我们要找的是前20项分数
inversed_fractions = inverse_fractions(fibonacci_digits[:-1]) # 去掉最后一项(因为它是下一个数的一部分)
result = sum_of_inverses(inversed_fractions)
print("前20项分数之和:", result)
```
当你运行这个代码,你会得到前20项分数的和。请注意,由于涉及到浮点数除法,结果可能不是精确的整数,但它应该是非常接近整数的。
阅读全文