Pisano Period

Pisano Period

Problem:计算\(F(n)\bmod P\quad(n\le10^{30000000},P\le10^{12})\)
参考自一篇全英文的paperThe Period of the Fibonacci Sequence Modulo j

Tips:如果不想看证明过程,可以直接跳到第五部分看结论。

Definition

Fibonacci数列

\(\forall n\in\mathbb{N_+},F_{n+1}=F_n+F_{n-1}\quad(F_0=0,F_1=1)\)

\(\phi=\frac{1+\sqrt5}{2},\overline{\phi}=\frac{1-\sqrt5}{2}\),易知有\(\phi^2=\phi+1\)\(\overline{\phi}^2=\overline{\phi}+1\)
实际上这就是Fibonacci数列的特征方程\(x^2=x+1\)的两实数根。
并且由此我们可以推出Fibonacci数列的通项公式\(F_n=\frac{1}{\sqrt5}(\phi^n-\overline{\phi}^n)\)

Pisano Period

\(\bmod p\)意义下的Fibonacci数列\(F_n\bmod p\)的循环节\(m\)是使得\(F_m\equiv0\pmod p\wedge F_{m+1}\equiv1\pmod p\)的最小正整数\(m\)

易知\(m\mid k\Leftrightarrow F_k\equiv0\pmod p,F_{k+1}\equiv1\pmod p\)

Part.1

我们需要先证明一些引理。

引理1

\(p\in\mathbb P,n\in\mathbb{N_+}\)\(a\equiv1\pmod p\Rightarrow a^{p^n}\equiv1\pmod{p^{n+1}}\)

证:
我们使用数学归纳法。
不妨设\(a=rp+1\quad(r\in\mathbb Z)\)
运用二项式定理,\(a^p\equiv(rp+1)^p\equiv1+\sum\limits_{i=1}^p\left(_i^p\right)(rp)^i\equiv1\pmod{p^2}\)
因此当\(n=1\)时引理成立。
假设\(n=m\)时定理成立,即有\(a^{p^m}\equiv1\pmod{p^{m+1}}\)
不妨设\(a^{p^m}=1+sp^{m+1}(s\in\mathbb Z)\)
同样运用二项式定理,\(a^{p^{m+1}}=(a^{p^m})^p=(1+sp^{m+1})^p=1+\sum\limits_{i=1}^p\left(_i^p\right)(sp^{m+1})^i\equiv1\pmod{p^{m+2}}\)
因此当\(n=m\)成立时,\(n=m+1\)也成立。
命题得证。

推论1

\(p\in\mathbb P,k\in\mathbb{N_+}\)\(m\)\(F_n\bmod p\)的循环节,有\(\phi^{mp^{k-1}}\equiv\overline{\phi}^{mp^{k-1}}\equiv1\pmod{p^k}\)

证:
\(F_m\equiv\frac{\phi^m-\overline\phi^m}{\sqrt5}\equiv0\pmod p\)可知\(\phi^m\equiv\overline{\phi}^m\pmod p\)
我们有\(F_m=F_{m+1}-F_1=\frac{\phi(\phi^m-1)-\overline{\phi}(\overline{\phi}^m-1)}{\sqrt5}\)
\(\phi^m\)替换\(\overline{\phi}^m\)得到\(F_m\equiv\frac{(\phi^m-1)(\phi-\overline{\phi})}{\sqrt5}\equiv(\phi^m-1)F_1\equiv\phi^m-1\equiv0\pmod p\)
\(\therefore\phi^m\equiv\overline{\phi}^m\equiv1\pmod p\)
运用引理1,\(\phi^{mp^{k-1}}\equiv\overline{\phi}^{mp^{k-1}}\equiv1\pmod{p^k}\)
命题得证。

引理2

\(p\in\mathbb P\wedge p\ne5\)\((\frac5p)=1\Leftrightarrow p\equiv\pm1\pmod5,(\frac5p)=-1\Leftrightarrow p\equiv\pm2\pmod5\)

证:
运用Gauss二次互反律,\((\frac5p)(\frac p5)=(-1)^{(\frac{5-1}2)(\frac{p-1}2)}=((-1)^{\frac{p-1}2})^2=1\)
运用Euler准则,\((\frac5p)=(\frac p5)\equiv p^2\pmod5\)
利用枚举法发现该命题在任意情况下成立,故命题得证。

Part.2

定理1

\(P=\prod\limits_{i=1}^{s}p_i^{k_i}\)\(m_i\)\(F_n\bmod p_i^{k_i}\)的循环节,\(M\)\(F_n\bmod P\)的循环节,则\(M=\operatorname{lcm}(m_1,\cdots,m_s)\)

证:
\(\because F_M\equiv0\pmod P\)
\(\therefore F_M\equiv0\pmod{p_i^{k_i}}\)
\(\therefore\forall i\le s,m_i\mid M\)
\(\therefore M=\operatorname{lcm}(m_1,\cdots,m_s)\)
命题得证。

定理2

\(p\in\mathbb P\)\(m\)\(F_n\bmod p\)的循环节,\(M\)\(F_n\bmod p^k\)的循环节,则\(M\mid mp^{k-1}\)

证:
由推论1我们有\(\phi^{mp^{k-1}}\equiv\overline{\phi}^{mp^{k-1}}\equiv1\pmod{p^k}\)
\(\therefore F_{mp^{k-1}}\equiv\frac{\phi^{mp^{k-1}}-\overline\phi^{mp^{k-1}}}{\sqrt5}\equiv\pmod{p^k}\)
\(\therefore F_{mp^{k-1}+1}\equiv\frac{\phi^{mp^{k-1}+1}-\overline\phi^{mp^{k-1}+1}}{\sqrt5}\equiv\frac{\phi-\overline{\phi}}{\sqrt5}\equiv1\pmod{p^k}\)
\(\therefore M\mid mp^{k-1}\)
命题得证。

事实上有猜想认为一定有\(M=mp^{k-1}\),目前尚未找到反例。

定理3

\(p\in\mathbb P\)\(m\)\(F_n\bmod p\)的循环节,若\(p\equiv\pm1\pmod5\),则\(m\mid p-1\)

证:
由引理2知\((\frac 5p)=1\),所以\(\sqrt5\)\(\mathbb{F_p}\)中。
运用Euler定理,\(\phi^{p-1}\equiv\overline{\phi}^{p-1}\equiv 1\pmod p\)
\(\therefore F_{p-1}\equiv\frac{\phi^{p-1}-\overline\phi^{p-1}}{\sqrt5}\equiv0\pmod p,F_p\equiv\frac{\phi^p-\overline\phi^p}{\sqrt5}\equiv\frac{\phi-\overline{\phi}}{\sqrt5}\equiv1\pmod p\)
\(\therefore m\mid p-1\)
命题得证。

定理4

\(p\in\mathbb P\)\(m\)\(F_n\bmod p\)的循环节,若\(p\equiv\pm2\pmod5\),则\(m\mid 2p+2\wedge 2\nmid\frac{2p+2}m\)

证:
由引理2知\((\frac5p)=-1\),所以我们定义\(\mathbb{F_p}(\sqrt5)=\{a+b\sqrt5|a,b\in\mathbb{F_p}\}\),附录中将证明这是一个域。
利用二项式定理,我们有\((a+b)^p\equiv a^p+b^p\pmod p\)
\(\therefore\phi^p\equiv(\frac12+\frac{\sqrt5}{2})^p\equiv(\frac12)^p+(\frac{\sqrt5}2)^p\equiv(\frac12)^p(1+\sqrt5^p)\equiv\frac12(1+5^\frac{p-1}2\sqrt5)\equiv\frac12(1-\sqrt5)\equiv\overline{\phi}\pmod p\)
同理,可以得到\(\overline{\phi}^p\equiv\phi\pmod p\)
因此我们有
\(F_{p}\equiv\frac{\phi^p-\overline\phi^p}{\sqrt5}\equiv\frac{\overline\phi-\phi}{\sqrt5}\equiv p-1\pmod p\)
\(F_{p+1}\equiv\frac{\phi^{p+1}-\overline\phi^{p+1}}{\sqrt5}\equiv\frac{\overline\phi\phi-\phi\overline\phi}{\sqrt5}\equiv0\pmod p\)
\(F_{p+2}\equiv F_p+F_{p+1}\equiv p-1\pmod p\)
\(\therefore m\nmid p+1\)
同理有
\(F_{2p+1}\equiv\frac{\phi^{2p+1}-\overline\phi^{2p+1}}{\sqrt5}\equiv\frac{\overline\phi^2\phi-\phi^2\overline\phi}{\sqrt5}\equiv\frac{\phi\overline\phi(\overline\phi-\phi)}{\sqrt5}\equiv1\pmod p\)
\(F_{2p+2}\equiv\frac{\phi^{2p+2}-\overline\phi^{2p+2}}{\sqrt5}\equiv\frac{\overline\phi^2\phi^2-\phi^2\overline\phi^2}{\sqrt5}\equiv0\pmod p\)
\(F_{2p+3}\equiv F_{2p+1}+F_{2p+2}\equiv1\pmod p\)
\(\therefore m\mid 2p+2\)
命题得证。

定理5

\(m=2*5^k(k\in\mathbb{N_+})\),则\(F_n\pmod m\)的循环节为\(6m\),否则\(F_n\pmod m\)的循环节\(\le4m\)

Conclusion

我们发现Part2给出的定理为Pisano Period是某个数的因数的形式。
考虑到真正做题中我们并不一定需要知道最小正周期,知道任意一个最小正周期的正整数倍数也是可行的,所以并没有问题。

然后概括一下求\(F_n\bmod P\)的“循环节”\(M\)的步骤。
\(P=\prod\limits_{i=1}^rp_i^{t_i}\)\(M_i\)\(F_n\bmod p_t^{t_i}\)的“循环节”,\(m_i\)\(F_n\bmod p_t\)的“循环节”。
\(1.\)
\(M=\operatorname{lcm}(M_1,\cdots,M_r)\)
\(2.\)
\(M_i=m_ip_i^{t_i-1}\)
\(3.\)
\(m_i=\begin{cases}3&p_i=2\\8&p_i=3\\20&p_i=5\\p_i-1&p_i\equiv\pm1\pmod5\\2p_i+2&p_i\equiv\pm2\pmod5\end{cases}\)
记得特判\(P=1\)

app.

命题:\(\mathbb{F_p}(\sqrt5)=\{\{a+b\sqrt5|a,b\in\mathbb{F_p}\},+,\cdot\}\)是一个域

这里简要写一下证明过程,其实挺简单的。

先了解\(\mathbb{F_p}\),设集合\(G=\{0,1,\cdots,p-1\}\quad p\in\mathbb P\),并对其定义\(\bmod p\)意义下的加法\(+\)和乘法\(\cdot\),易证\(\mathbb{F_p}=\{G,+,\cdot\}\)是一个域。
其零元为\(0\),单位元为\(1\)\(a\)的加法逆元为\(p-a\),除\(0\)以外的数的乘法逆元一定存在。
若要证明\(\mathbb{F_p}(\sqrt5)\)是一个域,首先证明\(\mathbb{F_p}(\sqrt5)\)对于加法是一个交换群,其次应证明\(\mathbb{F_p}(\sqrt5)\)去掉加法零元之后对于乘法是一个交换群。
封闭性、结合律、交换律都易证不难,这里就不写了。
加法零元:\(0+0\sqrt5\)
加法逆元:\(-(a+b\sqrt5)=(p-a)+(p-b)\sqrt5\)
乘法零元:\(1+0\sqrt5\)
乘法逆元:\((a+b\sqrt5)^{-1}=\frac{a-b\sqrt5}{a^2-5b^2}\)

Extension

那个英文论文里提到了Lucas数列,可以去练练手。
实际上大多数二阶常系数齐次线性递推数列都可以这样做,具体方法就是把\(\phi\)\(\overline\phi\)换成其特征方程的两根,其它部分相应修改即可。

你可能感兴趣的:(Pisano Period)