关于 P2673 的一些思考
题面
(\(f_i\) 为斐波那契数列的第 \(i\) 项)
给定 \(m,n\) 求 \(\lim\limits_{k\to\infty}(\sum\limits_{i=1}^kf_i\times10^{k-i})\) 的第 \(m\) 到第 \(n\) 位。
题解
有趣的推式子题,两种推导方法。
- 在这个数前面加上
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}\)。
- 斐波那契数列的生成函数 \(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}
\]
遗留问题
为什么分数一定是循环小数,因为做除法的时候余数是有限的,所以会循环。

浙公网安备 33010602011771号