浅谈斐波那契数列的一个性质及推广

· · 个人记录

浅谈斐波那契数列的一个性质及推广

前置知识

导引

斐波那契数列有一个大家所熟知的性质:

\gcd(f_{n},f_{m})=f_{\gcd(n,m)}

以下部分的内容将证明这一性质。

先来看一个引理:

\text{Lemma}\ 1 f_{n+m}=f_{n}\times f_{m-1}+f_{n+1}\times f_{m}

使用归纳法证明,m\le 2 时,显然有:

f_{n+1}=f_{n}\times f_{0}+f_{n+1}\times f_{1} f_{n+2}=f_{n}\times f_{1}+f_{n+1}\times f_{2}

假设 m\le k 时均成立,现证明 m=k+1 时成立。

根据假设,可以得到:

f_{n+k}=f_{n}\times f_{k-1}+f_{n+1}\times f_{k} f_{n+k-1}=f_{n}\times f_{k-2}+f_{n+1}\times f_{k-1}

两式相加:

f_{n+k+1} &=f_{n+k}+f_{n+k-1}\\ &=f_{n}\times (f_{k-1}+f_{k-2})+f_{n+1}\times (f_{k}+f_{k-1})\\ &=f_{n}\times f_{k}+f_{n+1}\times f_{k+1} \end{aligned}

即证 m=k+1 时成立。

同时,换元可以得到:

f_{m}=f_{n}\times f_{m-n-1}+f_{n+1}\times f_{m-n}

接下来是斐波那契数列另一性质:

\text{Lemma}\ 2 \gcd(f_{n},f_{n+1})=1

简单推导一下:

\gcd(f_{n},f_{n+1}) &=\gcd(f_{n},f_{n+1}-f_{n})\\ &=\gcd(f_{n},f_{n-1})\\ &\cdots\\ &=\gcd(f_{1},f_{2})\\ &=1 \end{aligned}

回到最初的证明,类比更相减损推广至辗转相除,如果我们能证明:

\gcd(f_{n},f_{m})=\gcd(f_{n},f_{m-n})

就可以证明该性质。

只需要大力展开:

\gcd(f_{n},f_{m})=\gcd(f_{n},f_{n}\times f_{m-n-1}+f_{n+1}\times f_{m-n})

容易发现前一项可以直接消去,而后一项中 f_{n}f_{n+1} 互质,因此:

\gcd(f_{n},f_{m})=\gcd(f_{n},f_{m-n})

拓展

那么对于任意的 x,y\in \mathbf{N^*},递推式:

\begin{cases} [n=1]&n\le 1\\ xf_{n-1}+yf_{n-2}&n>1 \end{cases}

是否同样有:

\gcd(f_{n},f_{m})=f_{\gcd(n,m)}

成立?

尝试证明拓展结论时,我们仍然要从两个引理的拓展下手。

引理 1 的归纳部分可效仿之处很多,事实上,对于任意的系数:

f_{n+m}=a\times f_{n}\times f_{m-1}+b\times f_{n+1}\times f_{m}

归纳 m=k+1 成立的部分都可以写成:

f_{n+k+1} &=xf_{n+k}+yf_{n+k-1}\\ &=a\times f_{n}\times (xf_{k-1}+yf_{k-2})+b\times f_{n+1}\times (xf_{k}+yf_{k-1})\\ &=a\times f_{n}\times f_{k}+b\times f_{n+1}\times f_{k+1} \end{aligned}

因此我们只需要找到使得边界成立 a,b,容易列出:

f_{n+1}=a\times f_{n}\times f_{0}+b\times f_{n+1}\times f_{1}\\ f_{n+2}=a\times f_{n}\times f_{1}+b\times f_{n+1}\times f_{2} \end{cases}

得:

a=y\\ b=1 \end{cases}

于是我们得到本文中 最为强力 的结论:

\text{Theorem}\ 1 $$f_{n}= \begin{cases} [n=1]&n\le 1\\ xf_{n-1}+yf_{n-2}&n>1 \end{cases}$$ 满足: $$f_{n+m}=y\times f_{n}\times f_{m-1}+f_{n+1}\times f_{m}$$ --- 而引理 $2$ 的拓展同样值得思考,当 $y=1$ 时: $$\gcd(f_{n},f_{n+1})=\gcd(f_{n},f_{n+1}-xf_{n})=\gcd(f_{n},f_{n-1})$$ 是流畅而愉悦的,但对于更普遍的情况则不甚适用。 于是我们调转思考方向,尝试寻找一个关于 $x,y$ 的条件以得到: $$\gcd(f_{n},f_{n+1})=1$$ 将式子拆开: $$\gcd(f_{n},f_{n+1})=\gcd(f_{n},f_{n+1}-xf_{n})=\gcd(f_{n},yf_{n-1})$$ 尝试使用归纳法,假设对于 $n\le k$,有 $\gcd(f_{n},f_{n+1})=1$ 成立,试探究 $n=k+1$ 时成立的条件。 在假设的前提下,就可以将上式再整理: $$\begin{aligned} \gcd(f_{k},f_{k+1}) &=\gcd(f_{k},yf_{k-1})\\ &=\gcd(f_{k},y)\\ &=\gcd(f_{k}\bmod y,y) \end{aligned}$$ 显然 $f_k$ 可以表示成 $f_k=ax+by$ 的形式,即要求 $\gcd(ax,y)=1$ 成立。 于是我们得到一个必要条件:$\gcd(x,y)=1$,似乎很有意义。 --- 下面来证明其充分性。 再看刚刚归纳得到的式子: $$\gcd(f_n,f_{n+1})=\gcd(f_n,yf_{n-1})$$ 假设中 $\gcd(f_{n},f_{n-1})=1$,此时满足条件 $\gcd(f_{n},y)=1$ 则原式成立,我们不妨对此同样进行归纳。 假设 $n\le k$ 时,$\gcd(f_{n},f_{n+1})=1,\gcd(f_{n},y)=1$,现证明满足 $\gcd(x,y)=1$ 的情况下,$n=k+1$ 时仍然成立。 $$\begin{aligned} \gcd(f_{k+1},y) &=\gcd(xf_{k}+yf_{k-1},y)\\ &=\gcd(xf_{k},y) \end{aligned}$$ 而 $\gcd(x,y)=1,\gcd(f_k,y)=1$ 均成立,即证。 综上,我们得到: $\text{Theorem}\ 2 $$f_{n}= \begin{cases} [n=1]&n\le 1\\ xf_{n-1}+yf_{n-2}&n>1 \end{cases}$$ 满足: $$\gcd(x,y)=1\Leftrightarrow\gcd(f_{n},f_{m})=f_{\gcd(n,m)}$$ ## 题 ### rafrsq 感谢题目提供者:[Jijidawang](https://www.luogu.com.cn/user/227514) 给定一个序列 $b$ 以及正整数 $x,y$ 要求维护一个初始值为 $0$ 序列 $a$,支持以下操作: `1 l r k`,对于所有 $i\in [l,r]$,令 $a_i\leftarrow a_i+f(b_i+k)

2 l r,查询 \sum_{i=l}^r a_i

其中 f 为数列,满足:

\begin{cases} [n=1]&n\le 1\\ xf_{n-1}+yf_{n-2}&n>1 \end{cases}

答案对 998244353 取模。

只需将 f(b_i+k) 拆开成 y\times f(b_i)\times f(k-1)+f(b_i+1)\times f(k),由于 b 固定,只需要维护系数。

后记