斐波那契数列百科全书

· · 算法·理论

本篇文章使用 f 来表示斐波那契数列,用 l 来表示卢卡斯数列,用艾弗森括号 [x] 来表示命题 x 是否成立,若无特殊情况,用 \left(\frac{a}{p}\right) 表示 a 是否是 p 的二次剩余(如果遇到右括号带有指数,那么就是特殊情况,这表示的并不是二次剩余,而是普通分数),本文中的 i 并非虚数。

前言

别看本文似乎短小精悍,其实是因为用了很多伸缩框,如果全部展开是相当之长的,本文涵盖许多关于斐波那契数列的定理、性质、恒等式,以及一些有关的算法,同时如果在证明时用到与斐波那契数列关系不大的东西在这篇文章中也都会进行阐述及证明,对新人非常的友好。这篇文章不仅适合信息学奥林匹克竞赛选手,还适合纯数学爱好者。

而本蒟蒻作为一个 \LaTeX 超级萌新,在极长的文章不中不乏有展示效果没那么好看的公式,但恕本人无能,不知道怎么样才能更好看,所以只能这样了,请大家见谅。

最后,本蒟蒻思考加写文章总共耗费 20 天时间,边写边想,而且这篇文章的大部分证明都是用本蒟蒻的猪脑想出来的,看我那么辛苦,麻烦给一个小小的赞吧……

本文章的皮萨诺周期部分还有最后一个证明没有写,因为太难了,本蒟蒻目前还不会,但由于本蒟蒻已经红温,先这样提交审核了,等后面缓过来了再更新。

::::info[这篇文章所有小部分的难度表即评语] 部分 难度系数 评语
定义 1 就一句话,零门槛
通项公式 8 指数解的思路需要一点数学直觉,但推导本身不难
加法恒等式:前 n 项和 3 最基础的数学归纳法,直接加一项就行
加法恒等式:平方和 4 运用了两个等式相减的技巧
加法恒等式:下标奇偶性求和 4 同样运用两个等式相减的技巧
加法恒等式:项与项的关系 6 m 归纳,需要一点技巧
加法恒等式:倍增法前置恒等式 7 第一个式子用之前的恒等式代入然后代数变形,第二个式子用第一个式子代入然后也代数变形
卡塔兰恒等式 12 实际难度不算很大但是相当之长,虽然每一步基本都是比较基础的代数运算,但需要极强的耐心和极高的专注力以及一些数学直觉
组合意义 5 排列组合,高中内容,但思路很显然
斐波那契数列的延伸——卢卡斯数列:卢卡斯数列通项公式 6 套用斐波那契的方法,解个方程组
斐波那契数列的延伸——卢卡斯数列:卢卡斯数列与斐波那契数列的关系 7 三个关系,归纳法加代数变形,比较有套路
更相减损术 6 简单数论,证明很直接但需要一些数学直觉
\operatorname{lcm} 整除定理 8 \gcd 性质推导,需要一点代数技巧
同余扩展的 \operatorname{lcm} 整除定理 4 就是上一个定理的改写,没什么新内容
数论性质:\gcd 性质 14 这里开始上强度了!用了之前的恒等式、\gcd 性质、更相减损术、数学归纳法,逻辑链条较长
数论性质:素数相关性 10 用了前面的 \gcd 性质,加上卢卡斯数列与斐波那契数列的关系,最后处理 n = 4 的特例,思路巧妙
齐肯多夫定理:最大表示数(前置) 8 归纳法加分类讨论
齐肯多夫定理 13 存在性加唯一性,存在性用归纳法,唯一性用反证法加前面的最大表示数性质,逻辑严密
矩阵关联:矩阵乘法基础 5 矩阵乘法的定义,概念性内容
矩阵关联:二阶常系数齐次线性递推关系的矩阵表示 8 构造递推矩阵,代码实现也不难
矩阵关联:推广到 k 阶常系数齐次线性递推关系的矩阵表示 10 矩阵构造更复杂了,但思路是一样的
倍增法关联 5 有了前置之后,代码就非常好写了,就是递归思想
皮萨诺周期前置:乘法逆元 5 概念简单
皮萨诺周期前置:剩余系 4 概念简单
皮萨诺周期前置:二次剩余 6 概念简单
皮萨诺周期前置:威尔逊定理 12 证明需要构造既约剩余系、处理 x = x^{-1} 的情况,有一定技巧
皮萨诺周期前置:费马小定理 13 构造 SS' 的思路很妙,属于“上帝启发”级别
皮萨诺周期前置:欧拉判别法 15 分情况讨论,配对的技巧更复杂,用到威尔逊定理
皮萨诺周期前置:高斯引理 16 集合划分、反证法、代数变形,难度较大
皮萨诺周期前置:二次互反律 18 先证两个推论,再构造点集,几何直观加代数推导,非常精巧
皮萨诺周期前置:域和扩域 8 概念本身不难,但比较抽象
皮萨诺周期前置:二项式定理 10 归纳法,标准证明
皮萨诺周期前置:freshman's dream 6 二项式定理展开后运用比较简单的组合数整除性质即可
皮萨诺周期核心:纯周期性 14 状态空间、可逆性、鸽笼原理,比较抽象
皮萨诺周期核心:质因数分解性质 15 用互质数的周期合并,需要用到之前证明的 同余扩展的 \operatorname{lcm} 整除定理
皮萨诺周期核心:奇素数整除性质 19 目前的巅峰之作。二次剩余、扩域、费马小定理、欧拉判别法、freshman's dream 全用上,分两种情况讨论,每一步都需要前面的知识
皮萨诺周期核心:上界 \pi(n) \le 6n 20 未完成,但已知难度极高

::::

定义

斐波那契数列初始为 f_0 = 0,f_1 = 1,然后对于 \forall n \ge 2,\ f_n = f_{n-1}+f_{n-2}

通项公式

\forall n \in \mathbb{N},\ f_n = \frac{1}{\sqrt{5}}\left[\left(\frac{1+\sqrt{5}}{2}\right)^n-\left(\frac{1-\sqrt{5}}{2}\right)^n\right]

::::success[证明] 考虑寻找满足 \forall n \in \mathbb{N},\ f_n = r^n 的指数解 r

我们将 r 代入 f_n = f_{n-1}+f_{n-2} 可得 r_n = r_{n-1}+r_{n-2},于是 r^n-r^{n-1}-r^{n-2} = 0,我们考虑提公因式 r^{n-2},可得:

\begin{align*} r^{n-2}(r^2-r-1) &= 0 \\ &\Downarrow \\ r^2-r-1 &= 0 \\ &\Downarrow \\ r &= \frac{1 \pm \sqrt{5}}{2} \end{align*}

然后对于 f_n,令 \alpha = \frac{1+\sqrt{5}}{2},\beta = \frac{1-\sqrt{5}}{2} 可得通解 f_n = A \alpha+B \beta

考虑对于 n = 0 时,f_n = 0 = A+B,所以 A = -B

n = 1 时,f_n = A \alpha+B \beta = 1,因为 A = -B 并且 \alpha-\beta = \sqrt{5},所以 A \alpha+B \beta = A\sqrt{5} = 1,即:

A = \frac{1}{\sqrt{5}},B = -\frac{1}{\sqrt{5}}

所以:

\forall n \in \mathbb{N},\ f_n = \frac{1}{\sqrt{5}}\left[\left(\frac{1+\sqrt{5}}{2}\right)^n-\left(\frac{1-\sqrt{5}}{2}\right)^n\right]

::::

加法恒等式

n 项和:

\forall n \in \mathbb{N},\ \sum_{i = 0}^n f_i = f_{n+2}-1

::::success[证明] 使用数学归纳法,在基础 0 的情况下:

\sum_{i = 0}^0 f_i = f_0 = f_2-1

成立,再考虑此时我们已知:

\forall i \in [0,m],\ \sum_{j = 0}^i f_j = f_{i+2}-1

我们需要证明:

\sum_{i = 0}^{m+1} f_i = f_{m+3}-1

考虑到将 f_{m+3} 展开为 f_{m+1}+f_{m+2},可得只需要证明:

\sum_{i = 0}^{m+1} f_i = f_{m+1}+f_{m+2}-1

显然 f_{m+1}-1 = \sum_{i = 0}^{m-1} f_i,所以只需要证明:

\sum_{i = 0}^{m+1} f_i = \sum_{i = 0}^{m-1} f_i+f_{m+2}

显然 f_{m+2} = f_{m+1}+f_m,所以只需要证明:

\sum_{i = 0}^{m+1} f_i = \sum_{i = 0}^{m-1} f_i+f_{m+1}+f_m

因为 \sum_{i = 0}^{m-1} f_i+f_{m+1}+f_m = \sum_{i = 0}^{m+1} f_i,所以只需要证明:

\sum_{i = 0}^{m+1} f_i = \sum_{i = 0}^{m+1} f_i

这显然成立。

至此,证毕。 :::: 平方和:

\forall n \in \mathbb{N},\ \sum_{i = 0}^n f_i^2 = f_n \times f_{n+1}

::::success[证明] 依旧使用数学归纳法,对于基础 0

\sum_{i = 0}^0 f_i^2 = f_0 = f_0 \times f_1

成立,考虑我们此时已知:

\forall i \in [0,m],\ \sum_{j = 0}^i f_j^2 = f_i \times f_{i+1}

如何证明:

\sum_{i = 0}^{m+1} f_i^2 = f_{m+1} \times f_{m+2}

因为我们知道对于 m 这个命题是成立的,所以可以两个等式相减,得出我们只需要证明:

f_{m+1}^2 = f_{m+1} \times (f_{m+2}-f_m)

而我们将 f_{m+2} 展开成 f_{m+1}+f_m,于是变为:

f_{m+1}^2 = f_{m+1}^2

这显然成立。

至此,证毕。 :::: 下标奇偶性求和:

\begin{align*} &\forall n \in \mathbb{N},\ \sum_{i = 0}^n f_{2i} = f_{2n+1}-1 \\ &\forall n \in \mathbb{N}^+,\ \sum_{i = 1}^n f_{2i-1} = f_{2n}-1 \end{align*}

::::success[证明] 先考虑第一个式子,依旧使用数学归纳法,对于基础 0

\sum_{i = 0}^0 f_{2i} = f_0 = f_1-1

成立,考虑我们此时已知:

\forall i \in [0,m],\ \sum_{j = 0}^i f_{2j} = f_{2i+1}-1

如何证明:

\sum_{i = 0}^{m+1} f_{2i} = f_{2(m+1)+1}-1

依旧将 m 的等式和 m+1 的等式相减,得出我们只需要证明:

\begin{align*} f_{2(m+1)} &= f_{2(m+1)+1}-f_{2m+1} \\ &\Downarrow \\ f_{2m+2} &= f_{2m+3}-f_{2m+1} \end{align*}

考虑将 f_{2m+3} 拆成 f_{2m+1}+f_{2m+2},于是变成:

f_{2m+2} = f_{2m+2}

这显然成立。

对于第二个式子也是基本一样的方法,就不多说了。 :::: 项与项的关系:

\forall m \in \mathbb{N},n \in \mathbb{N}^+,\ f_{m+n} = f_{m+1}f_n+f_mf_{n-1}

::::success[证明] 我们固定 n,然后对 m 进行归纳。

对于基础 01,分别为 f_n = f_1f_n+f_0f_{n-1} = f_n 以及 f_{n+1} = f_2f_n+f_1f_{n-1} = f_n+f_{n-1},均成立。

考虑此时我们已知:

\forall m \in [0,k+1],\ f_{m+n} = f_{m+1}f_n+f_mf_{n-1}

我们要证明 m = k+2 时此命题是否成立,我们已知 f_{k+2+n} = f_{k+1+n}+f_{k+n},于是根据已知条件进行推导:

\begin{align*} \because f_{k+2+n} &= f_{k+1+n}+f_{k+n} \\ \therefore f_{k+2+n} &= (f_{k+2}f_n+f_{k+1}f_{n-1})+(f_{k+1}f_n+f_kf_{n-1}) \\ f_{k+2+n} &= (f_{k+2}+f_{k+1})f_n+(f_{k+1}+f_{k})f_{n-1} \\ \because f_{k+2}+f_{k+1} &= f_{k+3} \\ \because f_{k+1}+f_k &= f_{k+2} \\ \therefore f_{k+2+n} &= f_{k+3}f_n+f_{k+2}f_{n-1} \end{align*}

这就是 m = k+2 时的恒等式形式。

至此,证毕。 :::: 倍增法前置恒等式:

\begin{align*} \forall k \in \mathbb{N},\ f_{2k} &= f_k(2f_{k+1}-f_k) \\ \forall k \in \mathbb{N},\ f_{2k+1} &= f_{k+1}^2+f_k^2 \end{align*}

::::success[证明] 先证明第一个式子。

利用我们之前已经证明的项与项的关系:

\forall m \in \mathbb{N},n \in \mathbb{N}^+,\ f_{m+n} = f_{m+1}f_n+f_mf_{n-1}

m = n = k,即可得到:

f_{2k} = f_{k+1}f_k+f_{k-1}f_k

此时我们再进行化简:

\begin{align*} f_{2k} &= f_{k+1}f_k+f_{k-1}f_k \\ &= (f_{k-1}+f_k)f_k+f_{k-1}f_k \\ &= f_{k-1}f_k+f_k^2+f_{k-1}f_k \\ &= 2f_{k-1}f_k+f_k^2 \end{align*}

我们再对 f_k(2f_{k+1}-f_k) 进行化简:

\begin{align*} f_k(2f_{k+1}-f_k) &= 2f_{k+1}f_k-f_k^2 \\ &= 2(f_{k-1}+f_k)f_k-f_k^2 \\ &= 2f_{k-1}f_k+2f_k^2-f_k^2 \\ &= 2f_{k-1}f_k+f_k^2 \end{align*}

于是我们有 f_{2k} = f_k(2f_{k+1}-f_k),至此,第一个式子证毕。

再证明第二个式子。

考虑使用数学归纳法,对于基础 0f_1 = f_1+f_0 = 1+0 = 1,成立。

考虑我们已知:

\forall i \in [0,k],\ f_{2i+1} = f_{i+1}^2+f_i^2

怎么证明 f_{2(k+1)+1} = f_{k+1}^2+f_{k+2}^2 呢?

显然 f_{2(k+1)+1} = f_{2k+3},并且我们根据斐波那契数列的递推式有 f_{2k+3} = f_{2k+2}+f_{2k+1},而 f_{2k+2} 可以转化成 f_{2(k+1)},然后通过第一个式子进行展开,并且 f_{2k+1} 也是已知的,考虑进行展开:

\begin{align*} f_{2k+3} &= f_{2k+2}+f_{2k+1} \\ &= f_{2(k+1)}+f_{2k+1} \\ &= f_{k+1}(2f_{k+2}+f_{k+1})+f_{k+1}^2+f_k^2 \\ &= f_{k+1}(f_k+f_{k+2})+f_{k+1}^2+f_k^2 \\ \end{align*}

显然我们把 f_{k+1}^2 提出来与要证明的式子中的 f_{k+1}^2 进行对应,于是我们只需要证明:

f_{k+1}(f_k+f_{k+2})+f_k^2 = f_{k+2}^2

进行一波推导:

\begin{align*} f_{k+1}(f_k+f_{k+2})+f_k^2 &= f_{k+2}^2 \\ &\Downarrow \\ (f_{k+2}-f_k)(f_k+f_{k+2})+f_k^2 &= f_{k+2}^2 \\ &\Downarrow \\ f_{k+2}f_k+f_{k+2}^2-f_k^2-f_kf_{k+2}+f_k^2 &= f_{k+2}^2 \\ &\Downarrow \\ f_{k+2}^2 &= f_{k+2}^2 \\ \end{align*}

这显然成立,至此,证毕。 ::::

卡塔兰恒等式

\forall n \in \mathbb{N}^+,\ f_n^2-f_{n-r}f_{n+r} = (-1)^{n-r} f_r^2

该恒等式还有一个常用的弱化恒等式,它有自己的名字,卡西尼恒等式。

它通常写作:

f_n^2-f_{n-1}f_{n+1} = (-1)^{n-1}

这显然是卡塔兰恒等式在 r = 1 时的情况。

不过有时,卡西尼恒等式也会写成:

f_{n-1}f_{n+1}-f_n^2 = (-1)^n

这与上面的式子显然等价。 ::::success[证明] 我们利用通项公式,令:

\begin{align*} \alpha &= \frac{1+\sqrt{5}}{2} \\ \beta &= \frac{1-\sqrt{5}}{2} \end{align*}

然后将 f_n^2,f_{n-r}f_{n+r} 分别列出(设 A = \alpha^n,B = \beta^n,通过手磨很容易知道 \alpha\beta = -1,\beta = -\alpha^{-1}):

\begin{align*} f_n^2 &= \left(\frac{A-B}{\sqrt{5}}\right)^2 \\ &= \frac{(A-B)^2}{5} \\ &= \frac{A^2-2AB+B^2}{5} \\ &= \frac{A^2+B^2-2(-1)^n}{5} \\ f_{n-r}f_{n+r} &= \left(\frac{\alpha^{n-r}-\beta^{n-r}}{\sqrt{5}}\right) \times \left(\frac{\alpha^{n+r}-\beta^{n+r}}{\sqrt{5}}\right) \\ &= \frac{(\alpha^{n-r}-\beta^{n-r})(\alpha^{n+r}-\beta^{n+r})}{5} \\ &= \frac{(A\alpha^{-r}-B\beta^{-r})(A\alpha^{r}-B\beta^r)}{5} \\ &= \frac{A^2\alpha^{-r}\alpha^r-AB\alpha^{-r}\beta^r-AB\alpha^r\beta^{-r}+B^2\beta^{-r}\beta^r}{5} \\ &= \frac{A^2-AB\alpha^{-r}\beta^r-AB\alpha^{r}\beta^{-r}+B^2}{5} \\ &= \frac{A^2-AB\alpha^{-r}(-\alpha)^{-r}-AB\alpha^r(-\alpha)^r+B^2}{5} \\ &= \frac{A^2-AB\alpha^{-r}(-1)^r\alpha^{-r}-AB\alpha^r(-1)^r\alpha^r+B^2}{5} \\ &= \frac{A^2-AB(-1)^r\alpha^{-2r}-AB(-1)^r\alpha^{2r}+B^2}{5} \\ &= \frac{A^2-AB[(-1)^r\alpha^{-2r}+(-1)^r\alpha^{2r}]+B^2}{5} \\ &= \frac{A^2-AB[(-1)^r(\alpha^{-2r}+\alpha^{2r})]+B^2}{5} \\ &= \frac{A^2+B^2-(-1)^{n+r}(\alpha^{2r}+\alpha^{-2r})}{5} \\ f_n^2-f_{n-r}f_{n+r} &= \frac{A^2+B^2-2(-1)^n}{5}-\frac{A^2+B^2-(-1)^{n+r}(\alpha^{2r}+\alpha^{-2r})}{5} \\ &= \frac{(-1)^{n+r}(\alpha^{2r}+\alpha^{-2r})-2(-1)^n}{5} \\ &= \frac{(-1)^{n}[(-1)^r(\alpha^{2r}+\alpha^{-2r})-2]}{5} \\ f_r^2 &= \left(\frac{\alpha^r-\beta^r}{\sqrt{5}}\right)^2 \\ &= \frac{(\alpha^r-\beta^r)^2}{5} \\ &= \frac{\alpha^{2r}-2\alpha^r\beta^r+\beta^{2r}}{5} \\ &= \frac{\alpha^{2r}+\beta^{2r}-2\alpha^r\beta^r}{5} \\ &= \frac{\alpha^{2r}+\beta^{2r}-2(-1)^r}{5} \\ \end{align*}

此时我们考虑 (-1)^r[\alpha^{2r}+\beta^{2r}-2(-1)^r](-1)^r(\alpha^{2r}+\alpha^{-2r})-2 的关系,很显然是相等的,化简一下就能证明了,并且这两个东西是等于 (-1)^r \times 5f_r^2于是,我们就可以把 \frac{(-1)^{n}[(-1)^r(\alpha^{2r}+\alpha^{-2r})-2]}{5} 转化为 \frac{(-1)^n(-1)^r \times 5f_r^2}{5},化简一下得到 (-1)^{n+r}f_r^2,因为 (-1)^{n+r} = (-1)^{n-r},所以可以变成 (-1)^{n-r}f_r^2,与该恒等式相同。

至此,证毕。 ::::

组合意义

可以表示为: $$ f_{n+1} = \sum_{k = 0}^{\lfloor \frac{n}{2}\rfloor} \binom{n-k}{k} $$ ::::success[证明] 因为斐波那契数列的递推式是 $f_i = f_{i-1}+f_{i-2}$,和解决那个组合问题所需要的递推式相同,而至于为什么是 $f_{n+1}$ 而不是 $f_n$ 是因为解决那个组合问题 $f_0$ 应该是 $1$,但是斐波那契数列中 $f_0 = 0$,所以我们设解决那个组合问题的递推数组为 $f'$,则 $\forall n \in \mathbb{N},\ f'_n = f_{n+1}$,这是显然的。 接下来就是证明为什么那个组合问题可以用这个式子来表示: $$ \sum_{k = 0}^{\lfloor \frac{n}{2}\rfloor} \binom{n-k}{k} $$ 由于骨牌只有两种,考虑我们先枚举较为特殊的 $1 \times 2$ 骨牌,设它有 $k$ 个,此时我们应该只能放 $n-2k+k = n-k$ 个骨牌,因为 $n-2k$ 是 $1 \times 1$ 骨牌能放的数量,而 $k$ 就是 $1 \times 2$ 的骨牌的数量。 所以我们的最终答案就是枚举 $0 \le k \le \lfloor \frac{n}{2} \rfloor$,对 $\binom{n-k}{k}$ 进行求和。 :::: ### 斐波那契数列的延伸——卢卡斯数列 卢卡斯数列和斐波那契数列很相似,不过卢卡斯数列初始为 $l_0 = 2,l_1 = 1$,然后对于 $\forall n \ge 2,\ l_n = l_{n-1}+l_{n-2}$。 ::::success[如何求卢卡斯数列的通项公式] 其实很简单,由于卢卡斯数列和斐波那契数列的唯一不同点就是初始值不同,所以我们直接套用斐波那契数列的通项公式求法。 我们得到通解 $l_n = A\alpha^n+B\beta^n$ 之后,对于 $f_0 = A+B = 2$,我们可以得到 $A = 2-B$,然后对于 $f_1 = A\alpha+B\beta = 1$,将式子变成 $2\alpha-B(\alpha-\beta)$,化简得 $1+\sqrt{5}-\sqrt{5}B = 1$,等式两边同时减去 $1$,然后提公因式 $\sqrt{5}$,得出 $\sqrt{5}(1-B) = 0$,两边同时除以 $\sqrt{5}$,得 $1-B = 0$,解得 $A = 1,B = 1$,于是卢卡斯数列通项公式为: $$ \begin{align*} l_n &= \alpha^n+\beta^n \\ &\Downarrow \\ l_n &= \left(\frac{1+\sqrt{5}}{2}\right)^n+\left(\frac{1-\sqrt{5}}{2}\right)^n \end{align*} $$ :::: ::::success[卢卡斯数列和斐波那契数列的关系] - $\forall n \in \mathbb{N}^+,\ l_n = f_{n-1}+f_{n+1} = f_n+2 \times f_{n-1}

我们先证明第一个关系。

显然将 f_{n+1} 转化成 f_n+f_{n-1} 之后很容易得出 f_{n-1}+f_{n+1} = f_n+2 \times f_{n-1}

也就是我们只需要证明 l_n = f_{n-1}+f_{n+1} 即可。

考虑使用数学归纳法。

对于基础 1,我们有 l_1 = f_0+f_2 = 1,成立。

再考虑我们已知:

\forall i \in [1,m],\ l_i = f_{i-1}+f_{i+1}

如何证明 l_{m+1} = f_m+f_{m+2}

因为我们已知 l_m = f_{m-1}+f_{m+1},而我们要证明的是 l_{m+1} = f_m+f_{m+2},直接用两式相减法,左边很容易得到 l_{m-1},但是右边比较困难(其实也很简单),我们来一步一步推导:

\begin{align*} f_m+f_{m+2}-(f_{m-1}+f_{m+1}) &= f_m+f_{m+2}-f_{m-1}-f_{m+1} \\ &= f_m+f_m+f_{m+1}-f_{m-1}-f_{m+1} \\ &= f_m+f_m-f_{m-1} \\ &= f_m+(f_m-f_{m-1}) \\ &= f_m+f_{m-2} \end{align*}

很显然,因为对于 i \in [1,m]l_i 我们是已知的,所以 l_{m-1} = f_{m-2}+f_m,这正好和我们上面要证明的式子相等。

至此,第一个关系证毕。

依旧使用数学归纳法。

对于基础 1,我们有 f_1 = \frac{l_0+l_2}{5} = \frac{5}{5} = 1

考虑我们已知:

\forall i \in [1,m],\ f_i = \frac{l_{i-1}+l_{i+1}}{5}

那么如何证明 f_{m+1} = \frac{l_m+l_{m+2}}{5}

根据已知的 f_m = \frac{l_{m-1}+l_{m+1}}{5},我们依旧使用两式相减法。

很显然,左边是 f_{m-1},那右边呢?我们来推一下:

\begin{align*} \frac{l_m+l_{m+2}}{5}-\frac{l_{m-1}+l_{m+1}}{5} &= \frac{l_m+l_{m+2}-(l_{m-1}+l_{m+1})}{5} \\ &= \frac{l_m+l_{m+2}-l_{m-1}-l_{m+1}}{5} \\ &= \frac{l_m+l_m+l_{m+1}-l_{m-1}-l_{m+1}}{5} \\ &= \frac{l_m+l_m-l_{m-1}}{5} \\ &= \frac{l_m+(l_m-l_{m-1})}{5} \\ &= \frac{l_m+l_{m-2}}{5} \end{align*}

而根据已知条件,我们有 f_{m-1} = \frac{l_{m-2}+l_m}{5},这与我们推的式子相同。

至此,第二个关系证毕。

最后证明第三个关系。

其实很简单,根据斐波那契数列和卢卡斯数列的通项公式,我们有:

f_n = \frac{\alpha^n-\beta^n}{\sqrt{5}},l_n = \alpha^n+\beta^n

于是我们直接相乘:

\begin{align*} f_n \times l_n &= \frac{\alpha^n-\beta^n}{\sqrt{5}} \times (\alpha^n+\beta^n) \\ &= \frac{(\alpha^n-\beta^n) \times (\alpha^n+\beta^n)}{\sqrt{5}} \\ &= \frac{\alpha^{2n}-\beta^{2n}}{\sqrt{5}} \\ &= f_{2n} \end{align*}

至此,第三个关系证毕。 ::::

更相减损术的核心及证明

更相减损术是一种算法,但它的核心是一个数论性质:

\forall m \ge n \in \mathbb{N}^+,\ \gcd(m,n) = \gcd(m-n,n)

::::success[证明] 令 d = \gcd(m,n),d' = \gcd(m-n,n),显然:

[d = d'] \Leftrightarrow [d \mid d'] \land [d' \mid d]

我们先证明 d \mid d',也就是 dm-nn 的公因数。

这个其实超级简单,因为 d \mid m 并且 d \mid n,所以根据数论基本原则我们可以得到 d \mid m-n,如果实在要证明这个基本原则,我们可以令 m = qd,n = q'd,因为 m \ge n,所以 q \ge q',即 m-n = (q-q')d,显然是 d 的倍数。

至此,d \mid d' 证毕。

接着再证明 d' \mid d,也就是 d'mn 的公因数。

因为 d' \mid m-n 并且 d' \mid n。所以 d' \mid m-n+n,化简一下得到 d' \mid m,由于原本就有 d' \mid n,所以命题得证。

至此,$d' d$ 证毕。

一个数论基本定理的证明

\forall x \in \mathbb{N},a \in \mathbb{N}^+,b \in \mathbb{N}^+,\ [a \mid x] \land [b \mid x] \Rightarrow [\operatorname{lcm}(a,b) \mid x]

::::success[证明] 我们令 d = \gcd(a,b),那么存在整数 m,n 使得:

a = dm,b = dn,\gcd(m,n) = 1

我们已知 a \mid x 并且 b \mid x,我们将 a,b 进行替换后,很容易得到:

\begin{align*} x &= dm \times k,k \in \mathbb{N} \\ x &= dn \times t,t \in \mathbb{N} \end{align*}

我们容易能想到将两式合并,得到 dmk = dnt,两边同时除以 d,可得 mk = nt,根据简单性质我们有 m \mid nt,而又因为 m,n 互质,所以 m \mid t,这里我们设 t = mq,则代入 mk = nmq 得到 k = nq,于是我们就有了:

x = dm \times k = dm \times (nq) = (dmn) \times q

而:

\operatorname{lcm}(a,b) = \frac{ab}{\gcd(a,b)} = \frac{(dm) \times (dn)}{d} = dmn

因为 x = (dmn) \times q,所以:

\begin{align*} &x = \operatorname{lcm}(a,b) \times q \\ &\Downarrow \\ &\operatorname{lcm}(a,b) \mid x \end{align*}

至此,该定理证毕。 ::::

上一个定理的扩展

\forall x \in \mathbb{N},m \in \mathbb{N}^+,n \in \mathbb{N}^+,y \in \mathbb{N},\gcd(m,n) = 1,\ [x \equiv y \pmod m] \land [x \equiv y \pmod n] \Rightarrow [x \equiv y \pmod {(mn)}]

::::success[证明] 我们先改写一波:

\forall x \in \mathbb{N},m \in \mathbb{N}^+,n \in \mathbb{N}^+,y \in \mathbb{N},\gcd(m,n) = 1,\ [x-y \equiv 0 \pmod m] \land [x-y \equiv 0 \pmod n] \Rightarrow [x-y \equiv 0 \pmod {(mn)}]

很容易发现,这不就是上一个定理的基本变形吗?

至此,该定理证毕。 ::::

数论性质

该命题也有一个常用的变形弱化命题:\forall m \in \mathbb{N}^+,n \in \mathbb{N},\ [m \mid n] \Leftrightarrow [f_m \mid f_n],只要证明了上面那个原命题成立,这个变形弱化命题也一定成立。 ::::success[证明] 根据之前我们得出的:

\forall m \in \mathbb{N},n \in \mathbb{N}^+,\ f_{m+n} = f_{m+1}f_n+f_mf_{n-1}

先交换一下 mn,得出:

\forall m \in \mathbb{N}^+,n \in \mathbb{N},\ f_{m+n} = f_mf_{n+1}+f_{m-1}f_n

我们令 A = f_{m+n},B = f_n,那么:

A = f_mf_{n+1}+B \times f_{m-1}

根据 \gcd 的定义,我们有:

\gcd(x+k \times B,B) = \gcd(x,B)

我们取 x = f_mf_{n+1},k = f_{m-1},则:

\gcd(A,B) = \gcd(f_mf_{n+1}+f_{m-1} \times B) = \gcd(f_mf_{n+1},f_n)

所以:

\gcd(f_{m+n},f_n) = \gcd(f_mf_{n+1},f_n)

因为 \gcd(f_{n+1},f_n) = 1,所以:

\gcd(f_{m+n},f_n) = \gcd(f_m,f_n)

接下来一步便是魔法,我们知道这对于 \forall m,n \in \mathbb{N},m+n \ne 0 都是成立的,也就是我们可以对 mn 进行任意更改,我们为了方便,如果 n>m,交换 nm,也就是我们需要保持 m \ge n,接着我们令更改后的 m,nm',n',则 m' = m-n,n' = n,此时我们就可以得出:

\begin{align*} \gcd(f_{m'+n'},f_{n'}) &= \gcd(f_{m'},f_{n'}) \\ &\Downarrow \\ \gcd(f_m,f_n) &= \gcd(f_{m-n},f_n) \end{align*}

此时回到我们的原命题:

\forall m,n \in \mathbb{N},m+n \ne 0,\ \gcd(f_m,f_n) = f_{\gcd(m,n)}

考虑使用数学归纳法,对于基础:

考虑对于一组 m,n \in \mathbb{N}^+,比它的 m+n 小的 m,n 已经全部成立,我们要证明这组 m,n 也成立。

根据我们刚刚推出的式子:

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

我们很容易发现 m-n+n = m,而 m<m+n,所以 \gcd(f_{m-n},f_n) = f_{\gcd(m-n,n)} 已经成立了,于是我们便得出:

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

根据更相减损术,可得:

\gcd(m-n,n) = \gcd(m,n)

所以:

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

至此,证毕。 ::::

对于那些既不是合数也不是素数的非负整数下标,我们一一验证之后就可以发现,没有一个对应的斐波那契数是素数,所以此次命题转化完全正确。

运用第一个性质的变形弱化命题:

\forall m \in \mathbb{N}^+,n \in \mathbb{N},\ [m \mid n] \Leftrightarrow [f_m \mid f_n]

那么当 n 为合数时,一定存在 a,b>1,使得 ab = n,并且根据那个变形弱化命题,我们知道 f_a \mid f_n 并且 f_b \mid f_n

接下来我们可以使用反证法。

我们要使 n 为合数时,f_n 可能是素数,所以 f_a 可以等于 1n,但尽管 f_a 可以等于 1n,不过如果 f_a = n 我们就可以通过魔法交换重新让 f_a 等于 1,所以我们只需要考虑 f_a = 1 的情况。

而只有在 a = 1a = 2f_a = 1,但是之前规定 a>1,所以 a 只能取 2

a = 2 时,n = 2b,我们根据斐波那契数列与卢卡斯数列的关系恒等式:

f_{2b} = f_b \times l_b

而在 b>2 时,f_b \ge 2,l_b \ge 4,所以 f_{2b}f_n 一定为合数。

不过 b = 2 时是一个特例,因为此时 f_b = 1,而此时 n = 4,这也刚好对应该命题的 n \ne 4 的要求。 ::::

齐肯多夫定理

对于任意一个非负整数,它可被唯一表示为若干个(也可以是一个)不同且不相邻的斐波那契数列之和,这个表示被称为齐肯多夫表示。

为了证明它,先给出一个前置定理:

对于所有 n \in \mathbb{N},用不超过 f_n(并且严格不相邻)的斐波那契数能表示的最大整数是 f_{n+1}-1。 ::::success[前置证明] 考虑使用数学归纳法,对于基础 0,最大也只能取 f_0 = 0,而 f_{1}-1 = 0,成立。

考虑我们已知:对于所有 i \in [0,m-1],此命题成立。

如何证明对于 m,此命题成立呢?

考虑我们是否选择 f_n,分类讨论:

将两者答案取 \max,可得值为 f_{n+1}-1。 :::: ::::success[证明] 先证明其存在性。

考虑使用数学归纳法,对于基础 0,显然可以取 f_0 = 0,成立。

这里定义 Q(x)x 有齐肯多夫表示这个命题是否成立。

考虑我们已知:

\forall i \in [0,n-1],\ Q(i)

那么如何证明 Q(n) 成立?

我们设 f_k 为不超过 n 的最大斐波那契数,则 f_k \le n<f_{k+1},考虑 n-f_k

至此,存在性证毕。

接着证明其唯一性。

利用反证法,假设其表示方法并不唯一,则对于最小的有两种表示方法的数 n \in \mathbb{N}(分别用 ab 表示):

\begin{align*} n &= f_{a_1}+f_{a_2}+\dots+f_{a_k}(a_1>a_2>\dots>a_k,\forall i \in [1,k-1],\ a_i-a_{i+1} \ge 2) \\ n &= f_{b_1}+f_{b_2}+\dots+f_{b_{k'}}(b_1>b_2>\dots>b_{k'},\forall i \in [1,k'-1],\ b_i-b_{i+1} \ge 2) \end{align*}

如果 a_1 = b_1,那 n-a_1 也是有两种表示方法的数,这与 n 是最小的有两种表示方法的数这个定义矛盾。

那么只剩下 a_1>b_1a_1<b_1 了,显然 a_1<b_1 可以通过魔法交换变成 a_1>b_1,所以我们只需要考虑 a_1>b_1 的情况即可。

根据我们之前证明的一个性质:用不超过 f_k(并且严格不相邻)的斐波那契数能表示的最大整数是 f_{k+1}-1

而又因为 b_1b 中的最大值,根据那个性质,我们可以得出 n \le f_{b_1+1}-1,然后又因为 a_1>b_1b_1<a_1,可推出 b_1+1 \le a_1,所以 f_{b_1+1}-1 \le f_{a_1}-1n \le f_{a_1}-1,但是如果用第一种表示的角度来看的话,n \ge a_1,这两个不等式不可能同时成立,矛盾。

至此,唯一性证毕。 ::::

矩阵关联

::::success[矩阵乘法] 对于一个 n \times r 的矩阵 A 和一个 r \times m 的矩阵 B,它们的乘积定义为一个 n \times m 的矩阵 C,有:

C_{i,j} = \sum_{k = 1}^r A_{i,k} \times B_{k,j}

:::: ::::success[k 阶常系数齐次线性递推关系] 通常指 F_i = \sum_{j = 1}^k \left(a_j \times F_{i-j}\right) 的齐次线性递推关系,因为有关 k 个常系数,所以得名。 :::: 假设我们要求 f_n,很显然,我们有:

\begin{align*} f_i &= 1 \times f_{i-1}+1 \times f_{i-2} \\ f_{i-1} &= 1 \times f_{i-1}+0 \times f_{i-2} \end{align*}

所以:

\begin{bmatrix} 1 & 1 \\ 1 & 0 \end{bmatrix} \times \begin{bmatrix} f_{i-1} \\ f_{i-2} \end{bmatrix} = \begin{bmatrix} f_i \\ f_{i-1} \end{bmatrix}

初学者到这里可以尝试在图纸上进行笔画理解。因为本人初学时也觉得十分难理解。

那么有了这一步我们再次推广:

\begin{bmatrix} 1 & 1 \\ 1 & 0 \end{bmatrix} \times \begin{bmatrix} 1 & 1 \\ 1 & 0 \end{bmatrix} \times \begin{bmatrix} f_{i-2} \\ f_{i-3} \end{bmatrix} = \begin{bmatrix} f_i \\ f_{i-1} \end{bmatrix}

可得:

\begin{bmatrix} f_n \\ f_{n-1} \end{bmatrix} = \begin{bmatrix} 1 & 1 \\ 1 & 0 \end{bmatrix}^{n-2} \times \begin{bmatrix} f_2 \\ f_1 \end{bmatrix}

因为矩阵乘法满足结合律,所以可以使用快速幂在 O(\log n) 的时间内计算矩阵的幂。

这里说一下矩阵快速幂的计算变量 ans 的初始值。在普通的快速幂中,开始时 ans = 1,是因为 1 乘任何数都等于那个数本身,而在矩阵中,也有一个起到这种效果的矩阵,单位矩阵!这个矩阵的 3 \times 3 形式长这样:

\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix}

是的,也就是正对角线是 1,其余是 0 了。

注意:矩阵乘法并不满足交换律。并且要特殊处理 n<2 的情况。

简单放一下代码(非完全体): ::::success[矩阵乘法代码]

struct node
{
    int a[3][3] = {};
    node operator*(const node&b)const
    {
        node c;
        for(int i = 1;i<=2;++i)
        {
            for(int j = 1;j<=2;++j)
            {
                for(int k = 1;k<=2;++k)
                {
                    c.a[i][j]+=a[i][k]*b.a[k][j];
                }
            }
        }
        return c;
    }
}a,ans,s,c;

:::: ::::success[主函数代码]

if(n<=2)
{
    cout << 1;
}
else
{
    a.a[1][1] = a.a[1][2] = a.a[2][1] = ans.a[1][1] = ans.a[2][2] = s.a[1][1] = s.a[2][1] = 1;
    int y = n-2;
    while(y)
    {
        if(y&1)
        {
            ans = ans*a;
        }
        a = a*a;
        y>>=1;
    }
    for(int i = 1;i<=2;++i)
    {
        for(int j = 1;j<=1;++j)
        {
            for(int k = 1;k<=2;++k)
            {
                c.a[i][j]+=ans.a[i][k]*s.a[k][j];
            }
        }
    }
    cout << c.a[1][1];
}

:::: 其实还可以推广: ::::info[推广] 显然这种做法可以推广到 k 阶常系数齐次线性递推关系。

对于一个 k 阶常系数齐次线性递推关系:

F_n = \sum_{i = 1}^k a_i F_{n-i}

我们要求 F_n,直接列式:

\begin{align*} F_n &= a_1 \times F_{n-1}+a_2 \times F_{n-2}+\dots+a_{k-1} \times F_{n-k+1}+a_k \times F_{n-k} \\ F_{n-1} &= 1 \times F_{n-1}+0 \times F_{n-2}+\dots+0 \times F_{n-k+1}+0 \times F_{n-k} \\ F_{n-2} &= 0 \times F_{n-1}+1 \times F_{n-2}+\dots+0 \times F_{n-k+1}+0 \times F_{n-k} \\ &\dots \\ F_{n-k+1} &= 0 \times F_{n-1}+0 \times F_{n-2}+\dots+1 \times F_{n-k+1}+0 \times F_{n-k} \end{align*}

于是:

\begin{bmatrix} a_1 & a_2 & \dots & a_{k-1} & a_k \\ 1 & 0 & \dots & 0 & 0 \\ 0 & 1 & \dots & 0 & 0 \\ \dots & \dots & \dots &\dots & \dots \\ 0 & 0 & \dots & 1 & 0 \\ \end{bmatrix} \times \begin{bmatrix} F_{n-1} \\ F_{n-2} \\ \dots \\ F_{n-k+1} \\ F_{n-k} \end{bmatrix} = \begin{bmatrix} F_n \\ F_{n-1} \\ F_{n-2} \\ \dots \\ F_{n-k+2} \\ F_{n-k+1} \end{bmatrix}

推广可得:

\begin{bmatrix} a_1 & a_2 & \dots & a_{k-1} & a_k \\ 1 & 0 & \dots & 0 & 0 \\ 0 & 1 & \dots & 0 & 0 \\ \dots & \dots & \dots &\dots & \dots \\ 0 & 0 & \dots & 1 & 0 \\ \end{bmatrix}^{n-k} \times \begin{bmatrix} F_k \\ F_{k-1} \\ \dots \\ F_2 \\ F_1 \end{bmatrix} = \begin{bmatrix} F_n \\ F_{n-1} \\ F_{n-2} \\ \dots \\ F_{n-k+2} \\ F_{n-k+1} \end{bmatrix}

可用矩阵快速幂在 O(k^3 \log n) 的时间复杂度之内解决。

n<k 时需要特殊处理。 ::::

倍增法关联

根据之前的两个前置恒等式,很容易发现对于所有 k \in \mathbb{N}2k2k+1 已经完美覆盖了所有非负整数,所以我们可以直接递归处理。

这里也简单放一下代码(主函数内容过于简单就不放了,只放递归函数的代码): ::::success[递归函数代码]

pair<int,int>f(int n)
{
    if (n == 0)
    {
        return {0,1};
    }
    auto x = f(n>>1);
    int a = x.first*(2*x.second-x.first);
    int b = x.first*x.first+x.second*x.second;
    if (n&1)
    {
        return {b,a+b};
    }
    else
    {
        return {a,b};
    }
}

:::: 当然也可以改成非递归形式并把 pair 换成结构体来加快速度,只不过会麻烦一点。

这个方法的优势在于它是真正的 O(\log n),而之前的矩阵快速幂的做法还带一个 2^3 = 8 的常数。

皮萨诺周期

对于所有 2 \le n \in \mathbb{N}^+,将斐波那契数列统一对 n 取模后一定是一个纯周期的数列,且设该数列的最小周期长度为 \pi(n),则 \pi(n) \le 6n,而且对 n 进行质因数分解之后 \pi(n) = \operatorname{lcm}_{i = 1}^k \pi(p_i^{a_i})

n 是奇素数并且 n \ne 5,当 n \equiv \pm 1 \pmod 5,则 \pi(n) \mid n-1,当 n \equiv \pm 2 \pmod 5,则 \pi(n) \mid 2(n+1)。 ::::success[纯周期和质因数分解证明] 先证明纯周期。

我们知道斐波那契数列是一个二阶常系数齐次线性递推关系,于是我们有:

f_{k+2} \equiv f_{k+1}+f_k \pmod n

该递推由连续两项唯一确定后一项,定义状态:

s_k = (f_k,f_{k+1}) \in \mathbb{Z}_n \times \mathbb{Z}_n

于是状态空间为:

S = \mathbb{Z}_n \times \mathbb{Z}_n

它显然是一个有限集合,且元素个数为 n^2

定义状态转移函数 h:S \to S 的转移式为:

h(x,y) = h(y,(x+y) \bmod n)

则:

s_{k+1} = h(s_k)

初始状态:

s_0 = (f_0,f_1) = (0,1)

定义一个状态转移函数 w:S \to S 可逆,则存在另一个状态转移函数 g:S \to S 使得:

\forall x,y \in S,\ g(w(x,y)) = (x,y),w(g(x,y)) = (x,y)

很显然我们可以让 g 的转移式为:

g(x,y) = g((y-x) \bmod n,x)

从而使得 h 函数可逆。

对于一个可逆的状态转移函数,我们称它为双射

对于一个有限集合到自身的双射,我们称它为该集合的置换

对于从第一个元素就开始循环的集合,我们称它为纯周期

鸽笼原理:如果把 n+1 个鸽子放进 n 个鸽笼,无论如何放置,至少存在一个鸽笼有两只鸽子。

对于不从第一个元素开始循环但是依旧存在循环的集合,我们称它为最终周期

显然 h 函数是 S 的一个置换。

给出一个定理:一个有限集合的置换从某点出发的轨道是纯周期循环。

我们来证明一下,首先它是个最终周期是很显然的,根据鸽笼原理,我们的状态集合有限,在第 |S|+1 个状态是一定会出现和之前重复的状态的。

然后如何从最终周期变成纯周期呢?

i<j 是最小的使得 h^i(s_0) = h^j(s_0) 的指标对,我们采用反证法,设 i>0,由于 h 函数可逆,所以我们对等式两边求逆:

h^{i-1}(s_0) = h^{j-1}(s_0)

于是我们得到了更小的一对重复,与原先的定义矛盾。

所以只有在 i = 0 时,等式两边无法求逆,才能使得 i<j 是最小的使得 h^i(s_0) = h^j(s_0) 的指指标对。

至此,纯周期证毕。

接下来证明质因数分解的定理。

显然任意两个不同素数的次幂一定是互质的。

于是我们可以弱化这个定理,转化为两个互质数 m,n

注意:此 n 并不是定理中的 n,请不要混淆。

我们令:

x = \pi(m),y = \pi(n),z = \pi(mn)

因为 z 是斐波那契数列模 mn 的周期,所以必有:

f_z \equiv 0 \pmod {(mn)},f_{z+1} \equiv 1 \pmod {(mn)}

根据这个式子,我们又有:

\begin{align*} &f_z \equiv 0 \pmod m,f_{z+1} \equiv 1 \pmod m \\ &f_z \equiv 0 \pmod n,f_{z+1} \equiv 1 \pmod n \end{align*}

于是显然 x \mid z 并且 y \mid z,我们便得到了 z 的最小取值 t = \operatorname{lcm}(x,y),并且显然有 t \mid z,也就是说我们只需要再证明 z \mid t 即可证明 z = t

显然 f_t 也一定满足模 m 和模 n 的同余式,但是如何证明 t 也是模 mn 的一个周期呢?

这里需要用到之前证明过的同余扩展的 \operatorname{lcm} 整除定理:

\forall x \in \mathbb{N},m \in \mathbb{N}^+,n \in \mathbb{N}^+,y \in \mathbb{N},\gcd(m,n) = 1,\ [x \equiv y \pmod m] \land [x \equiv y \pmod n] \Rightarrow [x \equiv y \pmod {(mn)}]

因为 m,n 互质,也就是 \gcd(m,n) = 1,显然我们就有了:

f_t \equiv 0 \pmod {(mn)},f_{t+1} \equiv 1 \pmod {(mn)}

于是我们就证明了 t 也是模 mn 的一个周期,得到 z \mid t,于是就有了 z = t

所以 \pi(mn) = \pi(m) \times \pi(n) = \operatorname{lcm}(\pi(m),\pi(n))

而推广到多个两两互质数也是很容易的,因为我们对两个数 m,n 进行合并也就是取 \operatorname{lcm}(m,n) 之后其实所有数依旧是两两互质,就这样递归下去,最终化为两个质数的情况(不妨说是一直在进行这样的操作)。

至此,质因数分解定理证毕。 :::: 接下来证明整除定理之前让我给出一些前置(前置定理中的一切变量均与皮萨诺周期定理定义中的变量无关): ::::success[乘法逆元] 定义:对于一个正整数 x,我们定义它在模 p 意义下的乘法逆元 x^{-1} 为最小的正整数 y 使得 xy \equiv 1 \pmod py

可行性:我们要计算模 p 意义下的 \frac{a}{x},即 a \times x^{-1},说白了就是 a \times \frac{1}{x},而在模 p 意义下 y = \frac{1}{x},也就是说在模 p 意义下,\frac{a}{x} = a \times y

存在性:对于 \gcd(a,p) = 1 的情况,a 在模 p 意义下存在逆元。这很显然可以用数论的整除性质来理解。

至此,乘法逆元的可行性证毕。 :::: ::::success[完全剩余系和既约剩余系] 完全剩余系:设 m 是一个正整数。从整数集 \mathbb{Z} 中取出任意 m 个数,若它们两两模 m 不同余,则这 m 个数模 m 的值组成的集合称为模 m 的一个完全剩余系。

既约剩余系:设 m 是一个正整数。在模 m 的一个完全剩余系中,取出所有与 m 互质的元素,由这些元素组成的集合称为模 m 的一个既约剩余系。 :::: ::::success[二次剩余] 二次剩余:对于一个非负整数 a 和奇素数 p,若:

\exists t,\ t^2 \equiv a \pmod p

则说 ap 的二次剩余。

可用勒让德符号表示为:

\left(\frac{a}{p}\right)

如果是二次剩余,返回值就是 1,否则就是 -1,特别的,如果满足条件的 t 等于 0 也就是 p \mid a,返回值为 0。 :::: ::::success[威尔逊定理] 威尔逊定理:对于素数 p,满足 (p-1)! \equiv -1 \pmod p

威尔逊定理证明:考虑集合 S = \{1,2,3,\dots,p-1\},这是一个模 p 的既约剩余系,对于每一个元素 x,它在该集合中有唯一的乘法逆元 x^{-1},而我们需要先找出 x = x^{-1}x 的数量,显然就是找 x^2 \equiv 1 \pmod p 的解集大小,而我们将此同余式进行化简:

\begin{align*} x^2 &\equiv 1 \pmod p \\ &\Downarrow \\ p &\mid (x^2-1) \\ &\Downarrow \\ p &\mid (x+1)(x-1) \end{align*}

而因为 p 是素数,要么 p \mid x+1,要么 p \mid x-1。当 p \mid x+1 时,x \equiv -1 \pmod p,易得 x = p-1 是唯一解;当 p \mid x-1 时,x \equiv 1 \pmod p,易得 x = 1 是唯一解。

所以 x^2 \equiv 1 \pmod p 的解集为 \{1,p-1\}

我们考虑计算 \prod_{x \in S} x,当 1 = p-1 也就是 p = 2 时我们先排掉(因为很影响我们对各种情况的统一处理,并且 p = 2 时该定理也成立),显然我们先处理 1,p-1 这两个特殊的数的乘积与何数在模 p 意义下同余,显然是 -1,而考虑剩余数的个数,显然是 p-3,而因为我们已经排掉了 p = 2 的情况所以 p 是奇数即 p-3 是偶数,于是由于除了 1,p-1 这两个特殊数其余数都可以进行乘法逆元两两配对,所以:

\prod_{x \in S} x = (p-1)! \equiv -1 \times 1^{\frac{p-3}{2}} = -1 \pmod p

至此,证毕。 :::: ::::success[费马小定理] 费马小定理:对于一个正整数 a 和一个素数 p,若 \gcd(a,p) = 1 也就是 a,p 互质,那么有:

a^{p-1} \equiv 1 \pmod p

费马小定理证明:我们考虑构造一个既约剩余系,由于 p 是一个素数,所以我们构造的既约剩余系 S = \{1,2,3,\dots,p-1\}

通过上帝的启发我们很容易想到拿 a 去乘这个剩余系的每一个元素,得到一个新的集合 S' = \{1 \times a,2 \times a,3 \times a,\dots,(p-1) \times a\},显然将这个集合统一模 p 之后,集合元素两两不同,也就是 S'S 的某种排列方式,即又是一个既约剩余系。

为什么?

采用反证法。我们假设有两个不同的 i,j \in [1,p-1],使得:

ai \equiv aj \pmod p

即:

a(i-j) \equiv 0 \pmod p

于是我们有 p \mid a(i-j),而又因为 \gcd(p,a) = 1,所以 p \mid i-j,但是 |i-j|<p,那么只有在 i-j = 0 也就是 i = jp \mid i-j 才成立,但是这与原本假设矛盾,命题成立。

知道了原因之后,我们继续证明,再一次根据仁慈上帝的启发我们很容易想到求两个集合的元素乘积:

\begin{align*} \prod_{x \in S}x &= (p-1)! \\ \prod_{x \in S'}x &= a^{p-1}(p-1)! \end{align*}

我们知道 S' 只是 S 的一个排列,所以这两个乘积在模 p 意义下理应是相等的,于是我们可以写出同余式:

(p-1)! \equiv a^{p-1}(p-1)! \pmod p

而我们显然可以两边交换后,将右边化为 0,得到:

(a^{p-1}-1)(p-1)! \equiv 0 \pmod p

(p-1)! = 1 \times 2 \times 3 \times \dots \times (p-1),这些数中所有数都和 p 互质,也就是说 (p-1)!p 也是互质的,那么我们就可以从原本的 p \mid (a^{p-1}-1)(p-1)! 得到 p \mid (a^{p-1}-1),再次变形成同余式,得到:

\begin{align*} a^{p-1}-1 &\equiv 0 \pmod p \\ &\Downarrow \\ a^{p-1} &\equiv 1 \pmod p \end{align*}

至此,费马小定理证毕。

后话:然而费马小定理其实还有一种更朴素的形式:对于一个正整数 a 和一个素数 p,有:

a^p \equiv a \pmod p

\gcd(a,p) = 1 的时候我们很显然可以由刚刚证明的那个形式两边同时乘上 a 来得到,那 \gcd(a,p) \ne 1 的时候呢?

显然,若 \gcd(a,p) \ne 1,则因为 p 是素数,所以 p \mid a,而根据整除基本性质,\exists k \in \mathbb{N}^+,\ kp = a,那么我们有:

a^p = (kp)^p = k^p p^p

也就是 a^p \equiv 0 \pmod p,而本身我们就有 a \equiv 0 \pmod p,所以 a^p \equiv a \pmod p

至此,证毕。 :::: ::::success[欧拉判别法] 欧拉判别法:对于奇素数 p 和满足 \gcd(a,p) = 1 的整数 a,我们有:

a^{\frac{p-1}{2}} \equiv \left(\frac{a}{p}\right) \pmod p

欧拉判别法证明:根据费马小定理 a^{p-1} \equiv 1 \pmod p 和平方差公式,我们有:

(a^{\frac{p-1}{2}}+1)(a^{\frac{p-1}{2}}-1) \equiv 0 \pmod p

所以对于任意满足 \gcd(a,p) = 1a 我们都有 a^{\frac{p-1}{2}} \equiv \pm 1 \pmod p

我们考虑集合 S = \{1,2,3,\dots,p-1\},对于每一个元素 x,它在集合中有唯一的乘法逆元 x^{-1}

我们分情况考虑,先考虑 \left(\frac{a}{p}\right) = 1 时的情况。

显然此时存在 b 使得 b^2 \equiv a \pmod p,那么这个二次同余方程的解的数量肯定是 2,并且互为相反数,也可以说是 b-b,而除了这两个特殊数其余数都可以两两配对(因为剩余数的数量是 p-3 为偶数,并且每一个元素 x 都可以和 a \times x^{-1} 进行配对),于是我们有:

\begin{align*} \prod_{x \in S} x &= (p-1)! \\ &\equiv b \times (-b) \times a^{\frac{p-3}{2}} \pmod p \\ &\equiv -b^2 \times a^{\frac{p-3}{2}} \pmod p \\ &\equiv -a \times a^{\frac{p-3}{2}} \pmod p \\ &= -a^{1+\frac{p-3}{2}} \\ &= -a^{\frac{p-1}{2}} \end{align*}

于是我们就有了:

(p-1)! \equiv -a^{\frac{p-1}{2}} \pmod p

根据威尔逊定理,我们得到:

-a^{\frac{p-1}{2}} \equiv -1 \pmod p

两边同时乘 -1 得到:

a^{\frac{p-1}{2}} \equiv 1 \pmod p

至此,\left(\frac{a}{p}\right) = 1 时的情况证毕。

再考虑 \left(\frac{a}{p}\right) = -1 时的情况。

此时不存在 b 使得 b^2 \equiv a \pmod p,也就是说没有不能配对的点,即:

\begin{align*} \prod_{x \in S} x &= (p-1)! \\ &\equiv a^{\frac{p-1}{2}} \pmod p \end{align*}

根据威尔逊定理,我们得到:

a^{\frac{p-1}{2}} \equiv -1 \pmod p

至此,\left(\frac{a}{p}\right) = -1 时的情况证毕。 :::: ::::success[高斯引理] 高斯引理:对于奇素数 p,若 n \in \mathbb{N}^+,\gcd(n,p) = 1,则 \forall k \in [1,\frac{p-1}{2}],\ a_k = nk \bmod p,有两个集合 A = \{a_k:a_k \le \frac{p-1}{2}\},B = \{a_k:a_k>\frac{p-1}{2}\},我们有:

\left(\frac{n}{p}\right) = (-1)^{|B|}

高斯引理证明:设 \lambda = |A|,\mu = |B|,显然我们知道 a 数列不存在两个重复的数(即 \lambda+\mu = \frac{p-1}{2}),证明很简单,采用反证法,若有两个不同下标 i,j 使得:

a_i = a_j

即:

ni \equiv nj \pmod p

显然 n 在模 p 意义下是存在乘法逆元的(根据逆元的存在性),所以将式子化为:

i \equiv j \pmod p

显然由于 i,j \le \frac{p-1}{2},所以 i = j,与原先假设矛盾,该命题成立。

既然我们证明了数列没有两个重复的数,所以:

n^{\frac{p-1}{2}}\left(\frac{p-1}{2}\right)! = \prod_{k = 1}^{\frac{p-1}{2}}nk \equiv \prod_{a \in A} a \prod_{b \in B} b \pmod p

这里我简单说明一下为什么可以由第二个式子推出第三个式子,因为根据乘法逆元的存在性性质,我们知道在这里 n 在模 p 意义下是有乘法逆元的,于是我们就可以同余号两边同时乘上 n 在模 p 意义下的乘法逆元,得到显然正确的同余式。

我们知道对于 B 中任意元素 b,有 \frac{p-1}{2}<b<p,所以 0<p-b \le \frac{p-1}{2},而对于 B 中任意一个元素 b,我们有 p-b \not \in A,否则若 A,B 中分别存在元素 a,b 使得 a = p-b,则存在整数 1 \le k_1 \ne k_2 \le \frac{p-1}{2} 使得 a = nk_1,b = nk_2p \mid nk_1+nk_2,由于 (n,p) = 1,则 p \mid k_1+k_2,注意到 1 \le k_1+k_2<p,所以产生矛盾。

而我们知道 b \equiv -(p-b) \pmod p,所以:

n^{\frac{p-1}{2}}\left(\frac{p-1}{2}\right)! \equiv (-1)^{\mu}\prod_{a \in A} a \prod_{b \in B} (p-b) = (-1)^{\mu}\left(\frac{p-1}{2}\right)! \pmod p

再次利用乘法逆元的存在性性质,得出:

n^{\frac{p-1}{2}} \equiv (-1)^{\mu} \pmod p

运用欧拉判别法:

n^{\frac{p-1}{2}} \equiv \left(\frac{n}{p}\right) \pmod p

可得:

\left(\frac{n}{p}\right) \equiv (-1)^{\mu} \pmod p

:::: ::::success[二次互反律] 二次互反律:对于两个二次剩余 \left(\frac{p}{q}\right),\left(\frac{q}{p}\right),这里 p \ne q,我们有:

\left(\frac{p}{q}\right)\left(\frac{q}{p}\right) = (-1)^{\frac{p-1}{2}\frac{q-1}{2}}

二次互反律证明:先给出一个推论,对于奇素数 p,我们有:

\left(\frac{2}{p}\right) = (-1)^{\frac{p^2-1}{8}}

若奇数 n 满足 \gcd(n,p) = 1,则我们有:

\left(\frac{n}{p}\right) = (-1)^{\sum_{i = 1}^{\frac{p-1}{2}} \left\lfloor \frac{ni}{p} \right\rfloor}

考虑证明(这个推论的证明中 p 并不是二次互反律定义中的 p)。

对于高斯引理中的 n,k,a_k,A,B,\lambda,\mu,我们有 \exist p \in \mathbb{N}^+,\ nk = p \left\lfloor \frac{nk}{p} \right\rfloor+a_k,首先我们有:

n \times \frac{p^2-1}{8} = \sum_{k = 1}^{\frac{p-1}{2}} nk

证明很简单,我们来推导一下就行了:

\begin{align*} \sum_{k = 1}^{\frac{p-1}{2}} nk &= n \sum_{k = 1}^{\frac{p-1}{2}} k \\ &= n \times \frac{\frac{p-1}{2}\left( \frac{p-1}{2}+1 \right)}{2} \\ &= n \times \frac{\frac{p-1}{2}\frac{p+1}{2} }{2} \\ &= n \times \frac{(p-1)(p+1)}{8} \\ &= n \times \frac{p^2-1}{8} \end{align*}

证明完后我们继续进一步可以得到:

\begin{align*} \sum_{k = 1}^{\frac{p-1}{2}} nk &= p \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{nk}{p} \right\rfloor+\sum_{a \in A} a+\sum_{b \in B} b \\ &= p \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{nk}{p} \right\rfloor+\sum_{a \in A} a+\sum_{b \in B} (p-b)+2 \sum_{b \in B} b-p\mu \end{align*}

我们来证明一下为什么:

p \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{nk}{p} \right\rfloor+\sum_{a \in A} a+\sum_{b \in B} b = p \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{nk}{p} \right\rfloor+\sum_{a \in A} a+\sum_{b \in B} (p-b)+2 \sum_{b \in B} b-p\mu

等式两边同时减去 p \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{nk}{p} \right\rfloor+\sum_{a \in A} a,得出我们只需要证明:

\sum_{b \in B} b = \sum_{b \in B} (p-b)+2 \sum_{b \in B} b-p\mu

来推导一下:

\begin{align*} \sum_{b \in B} b &= \sum_{b \in B} (p-b)+2 \sum_{b \in B} b-p\mu \\ &\Downarrow \\ 0 &= \sum_{b \in B} (p-b)+2 \sum_{b \in B} b-\sum_{b \in B} b-p\mu \\ &\Downarrow \\ 0 &= \sum_{b \in B} (p-b)+\sum_{b \in B} b-p\mu \\ &\Downarrow \\ 0 &= \sum_{b \in B} (p-b)-\left(p\mu-\sum_{b \in B} b\right) \\ &\Downarrow \\ 0 &= \sum_{b \in B} (p-b)-\sum_{b \in B} (p-b) \\ &\Downarrow \\ 0 &= 0 \end{align*}

证明完后我们继续:

\begin{align*} p \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{nk}{p} \right\rfloor+\sum_{a \in A} a+\sum_{b \in B} (p-b)+2 \sum_{b \in B} b-p\mu &= p \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{nk}{p} \right\rfloor+\sum_{k = 1}^{\frac{p-1}{2}} k+2 \sum_{b \in B} b-p\mu \\ &= p \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{nk}{p} \right\rfloor+\frac{p^2-1}{8}+2 \sum_{b \in B} b-p\mu \\ \end{align*}

我们很容易得到:

(n-1) \times \frac{p^2-1}{8} = p \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{nk}{p} \right\rfloor+2 \sum_{b \in B} b-p\mu

先证明这个推论的第一个部分,也就是 n = 2 的时候。

而为了证明 (-1)^{\frac{p^2-1}{8}} = (-1)^{\mu},我们需要证明 \frac{p^2-1}{8} \equiv \mu \pmod 2

因为 n = 2,所以上面的恒等式变为:

\begin{align*} \frac{p^2-1}{8} &= p \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{2k}{p} \right\rfloor+2 \sum_{b \in B} b-p\mu \\ &\Downarrow \\ \frac{p^2-1}{8} &\equiv p \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{2k}{p} \right\rfloor+2 \sum_{b \in B} b-p\mu \pmod 2 \end{align*}

我们显然有 0<\frac{2k}{p} \le \frac{p-1}{p}<1,也就是 \forall k \in [1,\frac{p-1}{2}],\ \left\lfloor \frac{2k}{p} \right\rfloor = 0,所以可以转化为:

\frac{p^2-1}{8} \equiv -p\mu \pmod 2

又因为 p 是奇数所以 p \equiv 1 \pmod 2,可转化为:

\begin{align*} \frac{p^2-1}{8} &\equiv -\mu \pmod 2 \\ &\Downarrow \\ \frac{p^2-1}{8} &\equiv \mu \pmod 2 \end{align*} 而当 $2 \nmid n$ 时,我们需要证明 $(-1)^{\sum_{i = 1}^{\frac{p-1}{2}} \left\lfloor \frac{ni}{p} \right\rfloor} = (-1)^{\mu}$,也就是 $\sum_{i = 1}^{\frac{p-1}{2}} \left\lfloor \frac{ni}{p} \right\rfloor \equiv \mu \pmod 2$。 依旧利用上面的那个恒等式,因为此时 $n \equiv p \equiv 1 \pmod 2$,可得: $$ \begin{align*} (n-1) \times \frac{p^2-1}{8} &\equiv p \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{nk}{p} \right\rfloor+2 \sum_{b \in B} b-p\mu \pmod 2 \\ &\Downarrow \\ 0 &\equiv \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{nk}{p} \right\rfloor-\mu \pmod 2 \\ &\Downarrow \\ \mu &\equiv \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{nk}{p} \right\rfloor \pmod 2 \\ &\Downarrow \\ \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{nk}{p} \right\rfloor &\equiv \mu \pmod 2 \end{align*} $$ $2 \nmid n$ 时证毕。 显然这个推论已经证明完毕了。 此时要证明二次互反律也就是要证明: $$ \frac{p-1}{2}\frac{q-1}{2} = \sum_{k = 1}^{\frac{p-1}{2}} \left\lfloor \frac{qk}{p} \right\rfloor+\sum_{k = 1}^{\frac{q-1}{2}} \left\lfloor \frac{pk}{q} \right\rfloor $$ 我们考虑构造一个点集 $S = \{(px,qy)|1 \le x \le \frac{q-1}{2},1 \le y \le \frac{p-1}{2}\}$,其中装的是形如 $(px,qy)$ 的点。 因为 $p,q$ 互质并且 $x,y$ 互质,所以 $px \ne qy$,那么 $|S| = \frac{p-1}{2}\frac{q-1}{2}$。 考虑将 $S$ 分成 $S_1 = \{(x,y) \in S|px>qy\}$ 和 $S_2 = \{(x,y) \in S|px<qy\}$,于是 $S = S_1 \cup S_2,S_1 \cap S_2 = \varnothing$。 先计算 $|S_1|$,对于固定的 $x$,满足 $px>qy$ 即 $y<\frac{px}{q}$ 的 $y$ 的数量是 $\left\lfloor \frac{px}{q} \right\rfloor$,而 $x$ 的取值范围是 $[1,\frac{q-1}{2}]$,所以: $$ |S_1| = \sum_{x = 1}^{\frac{q-1}{2}} \left\lfloor \frac{px}{q} \right\rfloor $$ 然后计算 $|S_2|$ 的方法也基本一样,对于固定的 $y$,满足 $px<qy$ 即 $x<\frac{qy}{p}$ 的 $x$ 的数量是 $\left\lfloor \frac{qy}{p} \right\rfloor$,而 $y$ 的取值范围是 $[1,\frac{p-1}{2}]$,所以: $$ |S_2| = \sum_{y = 1}^{\frac{p-1}{2}} \left\lfloor \frac{qy}{p} \right\rfloor $$ 显然 $|S_1|+|S_2| = |S|$,也就是: $$ \sum_{x = 1}^{\frac{q-1}{2}} \left\lfloor \frac{px}{q} \right\rfloor+\sum_{y = 1}^{\frac{p-1}{2}} \left\lfloor \frac{qy}{p} \right\rfloor = \frac{p-1}{2}\frac{q-1}{2} $$ 这和我们要证明的等式是一样的。 至此,证毕。 :::: ::::success[域和扩域] 普通域:若一个集合里的任意两个元素做加减乘除中的任意一个操作(做除法操作时,除数不能为 $0$)后得到的结果依旧是这个集合元素,则这个集合被称为域。 模意义下的域:若一个模 $p \in \mathbb{N}^+$ 意义下的集合 $\mathbb{F}_p$ 里的任意两个元素在模意义下做加减乘除中的任意一个操作(做除法操作的前提是有意义)后得到的结果依旧是这个集合元素,则这个集合被称为模 $p$ 意义下的域。而我们知道,在一个模 $p$ 意义下的集合在模 $p$ 意义下不管是做加减乘除操作任意一项得到的结果都一定是该集合的元素,所以我们也可以直接检验每一个元素的加法逆元和乘法逆元的存在性来判断该集合是否是域。 **不管是在任何一个域,都可以进行四则运算,只不过在模意义下的域中,结果要对 $p$ 取模,并且除法是相当于乘上那个数的乘法逆元。每一个域都需要单位 $0$。** 扩域:在一个已有的域里,加入一些新的数,然后把这些新数和原来的数通过加减乘除组合起来,得到的所有结果仍然能构成一个域,这个更大的域就叫原域的扩域。 :::: ::::success[二项式定理] 二项式定理: $$ \forall n \in \mathbb{N},a \in \mathbb{R},b \in \mathbb{R},\ (a+b)^n = \sum_{k = 0}^n \binom{n}{k}a^{n-k}b^k $$ 二项式定理证明:考虑使用数学归纳法。 对于基础 $0$,我们有 $(a+b)^0 = \sum_{k = 0}^0 \binom{0}{0}a^{0-k}b^k = 1$,成立。 考虑我们已知: $$ \forall i \in [0,m],\ (a+b)^i = \sum_{k = 0}^i \binom{i}{k}a^{i-k}b^k $$ 如何证明 $(a+b)^{m+1} = \sum_{k = 0}^{m+1} \binom{m+1}{k}a^{m+1-k}b^k$ 呢? 于是开始推式子: $$ \begin{align*} (a+b)^{m+1} &= (a+b) \times (a+b)^m \\ &= (a+b) \times \sum_{k = 0}^m \binom{m}{k}a^{m-k}b^k \\ &= a \times \sum_{k = 0}^m \binom{m}{k}a^{m-k}b^k+b \times \sum_{k = 0}^m \binom{m}{k}a^{m-k}b^k \\ &= \sum_{k = 0}^m \binom{m}{k}a^{m+1-k}b^k+\sum_{k = 0}^m \binom{m}{k}a^{m-k}b^{k+1} \\ &= \sum_{k = 0}^m \binom{m}{k}a^{m+1-k}b^k+\sum_{k = 1}^{m+1} \binom{m}{k-1}a^{m+1-k}b^k \\ &= \binom{m}{0}a^{m+1}+\sum_{k = 1}^m \left[\binom{m}{k}+\binom{m}{k-1}\right]a^{m+1-k}b^k+\binom{m}{m}b^{m+1} \end{align*} $$ 因为 $\binom{m}{k}+\binom{m}{k-1} = \binom{m+1}{k}$,所以: $$ \begin{align*} \binom{m}{0}a^{m+1}+\sum_{k = 1}^m \left[\binom{m}{k}+\binom{m}{k-1}\right]a^{m+1-k}b^k+\binom{m}{m}b^{m+1} &= \binom{m}{0}a^{m+1}+\sum_{k = 1}^m \left[\binom{m+1}{k}\right]a^{m+1-k}b^k+\binom{m}{m}b^{m+1} \\ &= a^{m+1}+\sum_{k = 1}^m \left[\binom{m+1}{k}\right]a^{m+1-k}b^k+b^{m+1} \\ &= \sum_{k = 0}^{m+1} \left[\binom{m+1}{k}\right]a^{m+1-k}b^k \end{align*} $$ 这个结果和我们要证明的式子一模一样。 至此,二项式定理证毕。 :::: ::::success[freshman's dream] freshman's dream 定义:对于素数 $p$ 和实数 $a,b$,我们有: $$ (a+b)^p \equiv a^p+b^p \pmod p $$ freshman's dream 证明:根据二项式定理,我们可以将 $(a+b)^p$ 展开成 $\sum_{k = 0}^p \binom{p}{k}a^{p-k}b^k$ 的形式,但是在 $1 \le k \le p-1$ 时,$\binom{p}{k} \equiv 0 \pmod p$,因为: $$ \binom{p}{k} = \frac{p!}{k!(p-k)!} $$ 要证明 $\frac{p!}{k!(p-k)!} \equiv 0 \pmod p$,我们根据乘法逆元的存在性可以将同余式两边同时乘上 $k!$ 和 $(p-k)!$ 的乘法逆元,得到我们只需要证明: $$ p! \equiv 0 \pmod p $$ 这显然是对的。 至此,证毕。 :::: 再给出证明: ::::success[整除定理证明] 考虑通过二次剩余的角度来进行思考,第一种情况是 $n \equiv \pm 1 \pmod 5$,可以转化为 $\left(\frac{5}{n}\right) = 1$,而第二种情况是 $n \equiv \pm 2 \pmod 5$,可以转化为 $\left(\frac{5}{n}\right) = -1$。 先来证明第一种情况转化的正确性。 显然简单手磨几个数就能发现 $[n \equiv \pm 1 \pmod 5] \Rightarrow \left[\left(\frac{n}{5}\right) = 1\right]$。 而根据二次互反律,我们可以将原本的 $\left(\frac{n}{5}\right)$ 转化成 $\left(\frac{5}{n}\right)$,而系数 $(-1)^{\frac{4(n-1)}{4}} = (-1)^{n-1} = 1$,因为 $n$ 是奇数,所以 $n-1$ 是偶数。 至此,第一种情况的转化的正确性证毕。 再考虑证明第二种情况转化的正确性。 显然根据平方运算模 $p$ 以 $p$ 为周期重复(这个原理显然,无需证明,在草稿纸上手玩一下完全平方公式即可),我们只需要手动验证 $\{1,2,3,4\}$ 中是否存在能使得 $\left(\frac{n}{5}\right) = 1$ 的数字即可。显然答案是没有,也就是说 $\left(\frac{n}{5}\right) = -1$,而依旧根据二次互反律得到 $\left(\frac{5}{n}\right) = -1$,过程几乎没有任何变化。 至此,第二种情况的转化的正确性证毕。 接下来进入正题,考虑第一种情况 $\left(\frac{5}{n}\right) = 1$,那么根据二次剩余的定义,我们有 $\exists t \in \mathbb{N}^+,\ t^2 \equiv 5 \pmod n$,在模 $n$ 意义下的域 $\mathbb{F}_n$ 中 $t = \sqrt{5}$,而因为域满足可运算的性质,所以 $\sqrt{5},\alpha,\beta \in \mathbb{F}_n$,而又因为 $\alpha-\beta = \sqrt{5}$,所以 $\alpha \ne \beta$。 根据费马小定理,我们有: $$ \alpha^{n-1} \equiv 1 \pmod n,\beta^{n-1} \equiv 1 \pmod n $$ 于是: $$ \begin{align*} &f_{n-1} = \frac{\alpha^{n-1}+\beta^{n-1}}{\alpha-\beta} \equiv \frac{1-1}{\alpha-\beta} = 0 \pmod n \\ &f_n = \frac{\alpha^n+\beta^n}{\alpha-\beta} \equiv \frac{\alpha-\beta}{\alpha-\beta} = 1 \pmod n \end{align*} $$ 因为状态 $(f_{n-1},f_n)$ 和状态 $(0,1)$ 重复,所以 $n-1$ 是斐波那契数列统一模 $n$ 的一个周期,即 $\pi(n) \mid n-1$。 再考虑第二种情况 $\left(\frac{5}{n}\right) = -1$。 显然此时刚刚的那个同余方程在 $\mathbb{F}_n$ 这个域中是无解的,也就是 $\sqrt{5} \not \in \mathbb{F}_n$,但是我们可以对 $\mathbb{F}_n$ 进行扩域操作,显然扩域的元素是形如 $a+b\sqrt{5}$ 的形式,而 $a,b \in \mathbb{F}_n$,因为 $a$ 和 $b$ 都是 $n$ 个取值,所以扩域后元素数量从 $n$ 变成了 $n^2$,而扩域后的域的加法和乘法都是可以进行简单验证的(这里就不写了),这里重点说明如何证明扩域后的域满足非 $0$ 元素乘法逆元的存在性。 根据乘法逆元的定义,相当于给定 $0 \ne x = a+b\sqrt{5}$,求 $y = c+d\sqrt{5}$ 使得 $xy \equiv 1 \pmod n$。 我们将 $xy$ 展开一波: $$ \begin{align*} xy &= (a+b\sqrt{5})(c+d\sqrt{5}) \\ &= ac+ad\sqrt{5}+bc\sqrt{5}+5bd \\ &= (ac+5bd)+(ad+bc)\sqrt{5} \end{align*} $$ 要使这个式子等于 $1$,那么一定是 $1+0 \times \sqrt{5} = 1$ 这种形式,所以我们有: $$ \begin{cases} ac+5bd = 1 \\ ad+bc = 0 \end{cases} $$ 解决这种方程的思想是用 $a,b$ 来踢掉 $c,d$,显然如果我们假设 $a \ne 0$,那么根据第二个等式一定有 $d = -\frac{bc}{a}$,代入第一个等式,我们有: $$ \begin{align*} ac+5b\left(-\frac{bc}{a}\right) &= 1 \\ &\Downarrow \\ ac-\frac{5b^2c}{a} &= 1 \\ &\Downarrow \\ c\left(a-\frac{5b^2}{a}\right) &= 1 \\ &\Downarrow \\ c\left(\frac{a^2-5b^2}{a}\right) &= 1 \\ &\Downarrow \\ c &= \frac{a}{a^2-5b^2} \end{align*} $$ 于是: $$ d = -\frac{bc}{a} = -\frac{b}{a} \times \frac{a}{a^2-5b^2} = -\frac{b}{a^2-5b^2} $$ 显然我们得到了使得这个方程成立的 $c,d$,但是我们还需要证明 $c,d$ 取值分母 $a^2-5b^2 \ne 0$ 以及 $a = 0$ 的情况。 我们先证明分母的非零性,显然若 $a^2-5b^2 = 0$,则我们只有两种情况: - 若 $b = 0$,则 $a = 0,x = 0$,矛盾。 - 若 $b \ne 0$,则 $a^2 = 5b^2$,化简可得 $\left(\frac{a}{b}\right)^2 = 5$,因为 $0 \ne b \in \mathbb{F}_n,a \in \mathbb{F}_n$,所以 $\frac{a}{b} \in \mathbb{F}_n$,这与我们目前的第二种情况不符。 于是我们证明了分母的非零性,接下来是补全一下 $a = 0$ 的证明。 若 $a = 0$,则 $x = b\sqrt{5}$,且 $b \ne 0$,否则 $x = 0$ 就矛盾了,此时我们有: $$ \begin{cases} 5bd = 1 \\ bc = 0 \end{cases} $$ 由第二个等式,因为 $b \ne 0$,所以 $c = 0$,再由第一个等式,因为 $b \ne 0$ 并且 $5bd = 1$,所以 $d = \frac{1}{5b}$,所以 $y = 0+\frac{1}{5b}\sqrt{5}$。 至此,乘法逆元性证毕。 显然我们有 $\alpha,\beta \in \mathbb{F}_{n^2}$,此时在域中我们有 $\alpha^n = \beta$,我们考虑证明。 因为 $\alpha = \frac{1+\sqrt{5}}{2},\beta = \frac{1-\sqrt{5}}{2}$,所以我们需要证明: $$ \left(\frac{1+\sqrt{5}}{2}\right)^n \equiv \frac{1-\sqrt{5}}{2} \pmod n $$ 我们先来将 $\left(\frac{1+\sqrt{5}}{2}\right)^n$ 化简一下: $$ \left(\frac{1+\sqrt{5}}{2}\right)^n = \frac{(1+\sqrt{5})^n}{2^n} \equiv \frac{1^n+(\sqrt{5})^n}{2^n} \pmod n $$ 最后一步使用了 freshman's dream。 显然 $1^n = 1$,并且根据费马小定理的另外一个形式 $a^n \equiv a \pmod n$ 我们有 $2^n \equiv 2 \pmod n$,所以式子变成 $\frac{1+(\sqrt{5})^n}{2}$。 考虑如何求出 $(\sqrt{5})^n \bmod n$。 我们稍加改写可得 $(\sqrt{5})^n = \sqrt{5} \times (\sqrt{5})^{n-1} = \sqrt{5} \times 5^{\frac{n-1}{2}}$,那么根据欧拉判别法我们有 $5^{\frac{n-1}{2}} \equiv \left(\frac{5}{n}\right) \pmod n$,根据第二种情况,于是我们有 $5^{\frac{n-1}{2}} \equiv -1 \pmod n$,可得 $\sqrt{5} \times 5^{\frac{n-1}{2}} \equiv \sqrt{5} \times (-1) = -\sqrt{5} \pmod n$,于是原式可改写: $$ \frac{1+(\sqrt{5})^n}{2} \equiv \frac{1+(-\sqrt{5})}{2} = \frac{1-\sqrt{5}}{2} = \beta $$ 至此,$\alpha^n \equiv \beta \pmod n$ 证毕。 于是: $$ \alpha^{n+1} = \alpha \times \alpha^n \equiv \alpha\beta = -1 \pmod n $$ 此时我们也有 $\beta^{n+1} \equiv -1 \pmod n$,为什么? 因为 $\mathbb{F}_n$ 是模 $n$ 的整数域,所以可以利用费马小定理得出在该域中 $\forall a \in \mathbb{F}_n,\ a^n = a$。 而我们注意到: $$ \begin{align*} \beta^{n+1} &\equiv (\alpha^n)^{n+1} \\ &= \alpha^{n(n+1)} \\ &= \alpha^{n^2+n} \\ &= \alpha^{n^2} \times \alpha^n \\ &= \alpha^{n^2} \times \beta \end{align*} $$ 而在 $\alpha^{n^2} = \alpha$ 的时候 $\beta = -1$,考虑对于 $a,b \in \mathbb{F}_n$ 如何证明 $\forall x = a+b\sqrt{5} \in \mathbb{F}_{n^2}$。 根据 freshman's dream,我们有: $$ (a+b\sqrt{5})^n = a^n+b^n(\sqrt{5})^n $$ 而根据之前证明的 $(\sqrt{5})^n = -\sqrt{5}$,再根据费马小定理得出的 $a^n = a,b^n = b$,令 $x = a+b\sqrt{5}$,我们有: $$ x^n = a-b\sqrt{5} $$ 而 $x^{n^2} = (x^n)^n$,所以: $$ x^{n^2} = (x^n)^n = (a-b\sqrt{5})^n $$ 而我们再次利用 freshman's dream 可得: $$ (a-b\sqrt{5})^n = a^n+(-b)^n(\sqrt{5})^n $$ 而又因为 $n$ 是奇数,所以 $(-b)^n = -b^n$,再根据之前的化简方法,可得: $$ a^n+(-b)^n(\sqrt{5})^n = a+b\sqrt{5} = x $$ 于是我们就证明了 $\forall x \in \mathbb{F}_{n^2},\ x^{n^2} = x$。 进而在 $\mathbb{F}_{n^2}$,我们有: $$ \alpha^{2(n+1)} = \beta^{2(n+1)} = 1 $$ 于是: $$ \begin{align*} &f_{2(n+1)} = \frac{\alpha^{2(n+1)}-\beta^{2(n+1)}}{\alpha-\beta} \equiv \frac{1-1}{\alpha-\beta} = 0 \pmod n \\ &f_{2(n+1)+1} = \frac{\alpha^{2(n+1)+1}-\beta^{2(n+1)+1}}{\alpha-\beta} \equiv \frac{\alpha-\beta}{\alpha-\beta} = 1 \pmod n \end{align*} $$ 因为状态 $(f_{2(n+1)},f_{2(n+1)+1})$ 和状态 $(0,1)$ 重复,所以 $2(n+1)$ 是斐波那契数列统一模 $n$ 的一个周期,即 $\pi(n) \mid 2(n+1)$。 ::::