关于 P2673 的一些思考

题面

\(f_i\) 为斐波那契数列的第 \(i\) 项)

给定 \(m,n\)\(\lim\limits_{k\to\infty}(\sum\limits_{i=1}^kf_i\times10^{k-i})\) 的第 \(m\) 到第 \(n\) 位。

题解

有趣的推式子题,两种推导方法。

  1. 在这个数前面加上 0. ,转为小数。

\[\sum\limits_{i=1}^k\dfrac{1}{\sqrt{5}}[(\dfrac{1+\sqrt{5}}{20})^i-(\dfrac{1-\sqrt{5}}{20})^i] \]

变成了两个等比数列。把第一个丢到等比数列求和公式里面,得到

\[S=\dfrac{1}{1-\dfrac{1+\sqrt{5}}{20}}-1=\dfrac{1}{\dfrac{19-\sqrt{5}}{20}}-1=\dfrac{20}{19-\sqrt{5}}-1=\dfrac{1+\sqrt{5}}{19-\sqrt{5}} \]

同理,第二个为

\[\dfrac{1-\sqrt{5}}{19+\sqrt{5}} \]

化简一番

\[\dfrac{1+\sqrt{5}}{19-\sqrt{5}}-\dfrac{1-\sqrt{5}}{19+\sqrt{5}}=\dfrac{(1+\sqrt{5})(19+\sqrt{5})-(1-\sqrt{5})(19-\sqrt{5})}{(19-\sqrt{5})(19+\sqrt{5})}=\dfrac{40\sqrt{5}}{356}=\dfrac{10\sqrt{5}}{89} \]

乘上最开始的 \(\dfrac{1}{\sqrt{5}}\),得到最终结果为 \(\dfrac{10}{89}\)

  1. 斐波那契数列的生成函数 \(F(x)=\sum\limits_{i=0}^kf_ix^i=\dfrac{x}{1-x-x^2}\)

\(x=\dfrac{1}{10}\) 代入,得

\[\sum\limits_{i=0}^k\dfrac{f_i}{10^i}=\dfrac{1}{0.89} \]

\[\sum\limits_{i=0}^kf_i\times10^{k-i}=\dfrac{10}{89} \]

显然 \(\dfrac{10}{89}\) 是一个无限循环小数,求出循环节即可,代码就不放了。

循环节:\(\mathtt{01123595505617977528089887640449438202247191}\)

思考

这玩意竟然是能确定的的?想想都感觉非常反直觉,思考一下为什么是这样的。仔细思考我们发现,Fibonacci 数列有 \(f_i\le 2^i\),而每次要比上一个多 \(\times \frac{1}{10}\),所以这玩意是收敛的。

转化为小数感觉很离谱,但是为了求值我们必须把 \(10^K\) 去掉,而且是不影响答案的,接下来通过通项公式化为两个等比数列求和,这个东西是收敛的,然后就做完了。

或者用的 Fibonacci 数列的生成函数,然后就一样了。

要仔细观察才行。

关于生成函数的推导过程

斐波那契数列定义为:

\[F_0 = 0,\quad F_1 = 1,\quad F_n = F_{n-1} + F_{n-2}\ (n \ge 2) \]

设它的生成函数为:

\[F(x) = F_0 + F_1 x + F_2 x^2 + F_3 x^3 + F_4 x^4 + \dots \]

我们通过错位相减可以得到:

\[xF(x)+x^2F(x)-F(x)=x \]

然后把 \(F(x)\) 当成未知数解方程得到:

\[F(x)=\frac{x}{1-x-x^2} \]

遗留问题

为什么分数一定是循环小数,因为做除法的时候余数是有限的,所以会循环。

posted @ 2026-02-24 16:24  NeeDna  阅读(9)  评论(0)    收藏  举报