有一个分数数列:2/1, 3/2,5/3,8/5,13/8, ·。编程计算这个数列的前 20项之和(结果保留2位小数)。
时间: 2024-12-01 21:30:24 浏览: 81
这是一个著名的斐波那契数列(Fibonacci sequence)除以它当前的位置形成的数列,也被称为"通分斐波那契数列"。斐波那契数列的前两项通常是0和1,之后的每一项都是前两项之和。对于给定的问题,我们可以编写一个程序来计算前20项的和。
首先,我们需要创建一个函数来生成斐波那契数列的值,然后对每个数求其倒数并累加。以下是Python代码的一个示例:
```python
def fibonacci_sum(n):
fib = [0, 1] # 斐波那契序列的前两项
total = 0
for i in range(2, n + 1):
fib.append(fib[i - 1] + fib[i - 2]) # 计算下一个斐波那契数
total += 1 / fib[-1] # 累加倒数
return round(total, 2) # 返回结果并保留两位小数
# 计算前20项和
result = fibonacci_sum(20)
print("前20项之和:", result)
```
运行上述代码会得到前20项的和,并将结果四舍五入到两位小数。
相关问题
有一个分数数列:2/1, 3/2, 5/3, 8/5, 13/8,…。编程计算这个数列的前20项之和(结果保留2位小数)。
分析:根据题目中给出的数列,可以发现这是一个斐波那契数列的变形,即每一项都是前两项之和的比值,而斐波那契数列的前20项可以通过递推公式计算,因此可以利用递推公式计算每一项的分子和分母,再计算它们的比值,最后将前20项的比值相加即可。
代码如下:
```python
# 计算斐波那契数列的前n项
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
# 计算分数数列的前n项之和
def sum_fraction(n):
numerator1, numerator2 = 2, 3 # 分子的初始值
denominator1, denominator2 = 1, 2 # 分母的初始值
sum = 2/1 + 3/2 # 前两项之和
for i in range(3, n+1):
numerator = numerator1 + numerator2 # 分子的递推公式
denominator = denominator1 + denominator2 # 分母的递推公式
sum += numerator/denominator # 将当前项的比值加入总和中
numerator1, numerator2 = numerator2, numerator # 更新分子的值
denominator1, denominator2 = denominator2, denominator # 更新分母的值
return round(sum, 2) # 保留两位小数
print(sum_fraction(20))
```
输出结果为:32.66
有一个分数数列:2/1, 3/2, 5/3, 8/5, 13/8, ...,编程计算这个数列的前 20 项之和(结果保留两位小数)python
numerator1 = 2 # 分子初始值
denominator1 = 1 # 分母初始值
numerator2 = 3 # 第二个分数的分子初始值
denominator2 = 2 # 第二个分数的分母初始值
total = 2 # 前两项之和
for i in range(3, 21):
numerator = numerator1 + numerator2 # 分子
denominator = denominator1 + denominator2 # 分母
fraction = numerator / denominator # 分数
total += fraction # 累加分数
numerator1, numerator2 = numerator2, numerator # 更新分子
denominator1, denominator2 = denominator2, denominator # 更新分母
print('前20项之和为:{:.2f}'.format(total))
阅读全文
相关推荐
















