\chapter{Fibonacci数列} \section{Fibonacci问题} Fibonacci是递推关系的一个典型问题,这个数列本身也有很多的应用。 \subsection{问题的提出} 假定初生的一对雌雄兔子,从出生的第2个月之后每个月都可以生出另外一对雌雄兔。如果第1个月只有一对初生的雌雄兔子,问$n$个月之后共有多少对兔子? \subsection{求递推关系} 设满$n$个月时兔子的对数为$F_n$,那么第$n-1$个月留下的兔子数目为$F_{n-1}$对;第$n-2$个月的所有兔子到了第$n$个月都有了繁殖能力,因此当月新生兔子数目为$F_{n-2}$对。因此,我们可以对Fibonacci数列有如下定义: \begin{definition} 定义Fibonacci数列$\{F_n\}$满足: \[F_n = F_{n-1} + F_{n-2}\eqco F_1 = F_2 = 1 \eqper\] \end{definition} 于是我们可以定义$F_0 = 0$。 \subsection{Fibonacci数列相关恒等式} \begin{proposition} 设$\{F_n\}$为Fibonacci数列,那么: \begin{enumerate} \item $F_1 + F_2 + \dots + F_n = F_{n+2} -1$; \item $F_1 + F_3 + \dots + F_{2n-1} = F_{2n}$; \item $F_0 - F_1 + F_2 - F_3 + \dots - F_{2n-1} + F_{2n} = F_{2n-1} - 1$; \item $F_1^2 + F_2^2 + \dots + F_n^2 = F_n F_{n+1}$; \item $F_{n-1}F_{n+1} - F_n^2 = (-1)^n$; \item $F_n^2 + F_{n-1}^2 = F_{2n-1}$; \item $F_{n+1}F_n + F_nF_{n-1} = F_{2n}$。 \end{enumerate} \end{proposition} 下面依次证明这些性质。 \begin{enumerate} \item 对等式$F_1 + F_2 + \dots + F_n = F_{n+2} -1$: \begin{proof} \begin{equation*} \begin{aligned} F_n & = F_{n+2} - F_{n+1}\\ F_{n-1} & = F_{n+1} - F_n\\ &\dots\\ F_1 & = F_3 - F_2 \end{aligned} \end{equation*} 累加所有的式子,得到 \[F_1 + F_2 + \dots + F_n = F_{n+2} - F_2 = F_{n+2} -1 \eqper\qedhere\] \end{proof} \item 对等式$F_1 + F_3 + \dots + F_{2n-1} = F_{2n}$: \begin{proof} \begin{equation*} \begin{aligned} F_{2n-1} & = F_{2n} - F_{2n-2}\\ F_{2n-3} & = F_{2n-2} - F_{2n-4}\\ & \dots \\ F_1 & = F_2 - F_0 \end{aligned} \end{equation*} 累加所有的式子,得到 \[F_1 + F_3 + \dots + F_{2n-1} = F_{2n} - F_0 = F_{2n} \eqper\qedhere\] \end{proof} \item 对等式$F_0 - F_1 + F_2 - F_3 + \dots - F_{2n-1} + F_{2n} = F_{2n-1} - 1$: \begin{proof} 将式子1减去式子2的两倍即可得证。 \end{proof} \item 对等式$F_1^2 + F_2^2 + \dots + F_n^2 = F_n F_{n+1}$: \begin{proof} \begin{equation*} \begin{aligned} F_n^2 & = F_n(F_{n+1} - F_{n-1}) = F_nF_{n+1} - F_nF_{n-1}\\ F_{n-1}^2 & = F_{n-1}F_n - F_{n-1}F_{n-2}\\ & \dots \\ F_1^2 & = F_1F_2 - F_1F_0 \end{aligned} \end{equation*} 累加即可得证。 \end{proof} \item 对等式$F_{n-1}F_{n+1} - F_n^2 = (-1)^n$: \begin{proof} 使用数学归纳法: \begin{enumerate}[label=(\arabic{*})] \item 当$n = 1$时,等式成立。 \item 设当$n = k-1$时,等式成立。那么当$n = k$时,有 \begin{equation*} \begin{aligned} F_{k-1}F_{k+1} - F_k^2 & = F_{k-1}(F_{k-1} + F_k) - F_k^2\\ & = F_{k-1}^2 + F_{k-1}F_k - F_k^2\\ & = F_{k-1}^2 + F_k(F_{k-1} - F_k)\\ & = F_{k-1}^2 - F_k F_{k-2}\\ & = -(F_k F_{k-1} - F_{k-1}^2)\\ & = (-1)\times (-1)^{k-1}\\ & = (-1)^k \end{aligned} \end{equation*} 即等式对$n=k$也成立。 \end{enumerate} 综上,等式对所有的$n \in \mathbb{N}^\ast$成立。 \end{proof} \item 对等式\[F_n^2 + F_{n-1}^2 = F_{2n-1} \tag{$\ast$} \label{fibonacci property 6}\]和\[F_{n+1}F_n + F_nF_{n-1} = F_{2n}\tag{$\ast\ast$} \label{fibonacci property 7}\] \begin{proof} 使用数学归纳法: \begin{enumerate}[label=(\arabic{*})] \item 当$n=1$时,等式成立。 \item 设当$n = k-1$时,等式成立。那么当$n = k$时,有 \begin{equation*} \begin{aligned} F_k^2 + F_{k-1}^2 & = (F_{k-1} + F_{k-2})^2 + F_{k-1}^2\\ & = F_{k-1}^2 + F_{k-2}^2 + 2F_{k-1}F_{k-2} + F_{k-1}^2\\ & = F_{2k-3} + F_{k-1}(F_{k-2} + F_{k-1}) + F_{k-1}F_{k-2}\\ & = F_{2k-3} + F_kF_{k-1} + F_{k-1}F_{k-2}\\ & = F_{2k-3} + F_{2k-2}\\ & = F_{2k-1} \end{aligned} \end{equation*} 注意在这个推导过程中我们利用了\eqref{fibonacci property 6}式和\eqref{fibonacci property 7}式在$n=k-1$时成立的条件。 \begin{equation*} \begin{aligned} F_{k+1}F_k + F_kF_{k-1} & = (F_k + F_{k-1})F_k + (F_{k-1} + F_{k-2})F_{k-1}\\ & = F_k^2 + F_{k-1}^2 + F_kF_{k-1} + F_{k-1}F_{k-2}\\ & = F_{2k-1} + F_{2k-1}\\ & = F_{2k} \end{aligned} \end{equation*} 注意在这个推导中我们用到了\eqref{fibonacci property 6}式在$n = k$时和\eqref{fibonacci property 7}在$n = k-1$时成立的条件。 因此,通过这样先证\eqref{fibonacci property 6}、再证\eqref{fibonacci property 7},我们可以同时证明两个等式对任意$n \in \mathbb{N}^\ast$都成立。 \end{enumerate} 综上,式子成立。 \end{proof} \end{enumerate} \section{广义Fibonacci数列} \begin{definition} 定义广义Fibonacci数列$\{E_n\}$满足: \[E_0 = A, E_1 = B, E_{n+1} = E_n + E_{n-1}\] \end{definition} 写出$\{E_n\}$的前几项,有 \begin{equation*} \begin{aligned} E_2 & = A + B\\ E_3 & = A + 2B\\ E_3 & = 2A + 3B\\ E_4 & = 3A + 5B\\ E_5 & = 5A + 8B\\ E_6 & = 8A + 13B\\ & \dots \\ E_n & = F_{n-1}A + F_nB \end{aligned} \end{equation*} \begin{proposition} 若令$A = F_a\eqco B = F_{a+1}$,那么有 \[F_{a+b+1} = E_{b+1} = F_{b}A + F_{b+1}B = F_{a+1}F_{b+1} + F_{a}F_{b}\eqper\] \end{proposition} \begin{corollary} 由上式可得 \begin{itemize} \item $F_n^2 + F_{n-1}^2 = F_{2n-1}$; \item $F_{n+1}F_n + F_nF_{n-1} = F_{2n}$。 \end{itemize} \end{corollary} \section{Fibonnacci数列的通项公式} \begin{theorem} Fibonacci数列的通项公式为 \[ F_n = \frac{1}{\sqrt{5}}\left(\left(\frac{1 + \sqrt{5}}{2}\right)^n - \left(\frac{1 - \sqrt{5}}{2}\right)^n\right) \eqper \] \end{theorem} \begin{proof} 将$\dfrac{F_{n+1}}{F_n}$进行数值试验,发现其稳定在1.618附近,猜测应为$\dfrac{\sqrt{5} + 1}{2}$。 设$G_n = cq^n$满足$G_{n+1} = G_n + G_{n+1}$。那么 \begin{equation*} \begin{aligned} cq^{n+1} & = cq^n + cq^{n-1}\\ q^2 & = q + 1 \end{aligned} \end{equation*} 可以得到 \begin{equation*} \left\{ \begin{aligned} & q_1 = \dfrac{1 + \sqrt{5}}{2}\\ & q_2 = \dfrac{1 - \sqrt{5}}{2} \end{aligned} \right. \end{equation*} 猜测$q_2$是造成$\dfrac{F_{n+1}}{F_n}$在$\dfrac{\sqrt{5} + 1}{2}$附近波动的原因。因此我们猜测 \[F_n = Aq_1^n + Bq_2^n \eqper\] 由 \begin{equation*} \left\{ \begin{aligned} & F_0 = A + B = 0\\ & F_1 = Aq_1 + Bq_2 = 1 \end{aligned} \right. \end{equation*} 可以得到 \begin{equation*} \left\{ \begin{aligned} & A = \frac{1}{\sqrt{5}}\\ & B = -\frac{1}{\sqrt{5}} \end{aligned} \right. \end{equation*} 于是有 \[F_n = \frac{1}{\sqrt{5}}\left(\left(\frac{1 + \sqrt{5}}{2}\right)^n - \left(\frac{1 - \sqrt{5}}{2}\right)^n\right) \eqper \qedhere\] \end{proof} \section{Fibonacci数列的性质} \begin{enumerate} \item Fibonacci数列可以作为表示任意正整数$N$的``基'': \[N = \sum_{i=2}^n a_iF_i \eqco\] 其中$a_i = 0, 1$,且$a_ia_{i+1} = 0$(即连续两项至少有一个为零)。例如: \[11 = F_6 + F_4 = 8 + 3 \eqper\] 这种用Fibonacci的表示可以写成一个五位数:10100。 \item 有所谓的Fibonacci方形,即边长为$F_n$的正方形,可以由$F_i \times F_{i+1}, i = 1, 2, \dots, n-1$的矩形拼接而成。 \end{enumerate}