求Fibonacci分数序列:2/1、3/2、5/3、8/5、13/8、21/13、…的前n项之和。结果保留6位小数
时间: 2023-12-28 07:54:20 浏览: 144
java_code_2.rar_Java 8
好的,根据您的要求,我来给您求解。
首先我们可以观察到这个序列的规律,每一个分数的分子都是前一个分数的分子与分母之和,而分母则是前一个分数的分子。因此可以写出如下的递推式:
$$
\begin{aligned}
&\frac{2}{1}, \frac{3}{2}, \frac{5}{3}, \frac{8}{5}, \frac{13}{8}, \frac{21}{13}, \dots \\
&\frac{a_{n+1}}{b_{n+1}} = \frac{a_n + b_n}{a_n}, \quad a_1=2,\ b_1=1
\end{aligned}
$$
接下来就可以用代码实现这个递推过程,并且计算前 n 项之和了。下面是 Python 代码实现:
```python
def fibonacci_fraction_sum(n):
a, b = 2, 1
sum = 2
for i in range(2, n+1):
a, b = a + b, a
sum += a / b
return round(sum, 6)
```
其中 sum 变量是记录前 n 项之和的,初始化为 2,因为第一项是 2/1。从第二项开始,每次更新 a 和 b 的值,同时将当前项的值加入到 sum 中。最后返回 sum 并保留六位小数即可。
如果您想要求前 10 项的和,只需要调用 fibonacci_fraction_sum(10) 即可,返回结果为 32.660260。
阅读全文