斐波那契数列の循环节

这问题咕咕咕了好久,来填坑了。

问题

求斐波那契数列在模 \(p\) 意义下的循环节 \(m\)

解法

首先知道 \(fib\) 通项公式为 \(f(n)=\frac{A^n-B^n}{\sqrt{5}}\) ,其中 \(A=\frac{1+\sqrt{5}}{2},B=\frac{1-\sqrt{5}}{2}\)

这里有个 \(\sqrt{5}\) ,故要从二次剩余角度去分析。

对于 \(p=2\)\(p=5\)

直接手玩,可得 \(p=2\) 时,\(m=3\)\(p=5\) 时,\(m=20\)

对于非 5 的奇质数

1. 若 5 是模 p 意义下的二次剩余

由费马小定理知 \(A^{p-1}≡1(mod\ p),B^{p-1}≡1(mod\ p)\)

\[f(p-1)≡\frac{A^{p-1}-B^{p-1}}{\sqrt{5}}≡0(mod\ p) \]

\[f(p)≡\frac{A^{p}-B^{p}}{\sqrt{5}}≡1(mod\ p) \]

可发现 \((f(0),f(1))\)\((f(p-1),f(p))\) 相等,故 \(m | p-1\)

2. 若 5 是模 p 意义下的二次非剩余

由欧拉判别准则知 \(5^{\frac{p-1}{2}}≡-1(mod\ p)\)

\[A^p=(\frac{1+\sqrt{5}}{2})^p=(\frac{1}{2})^p(1+\sqrt{5})^p≡\frac{1}{2}(1+\sqrt{5}^p)≡\frac{1}{2}(1-\sqrt{5})≡B(mod\ p) \]

同理可得

\[B^p≡A(mod\ p) \]

\[f(2p+1)=\frac{A^{2p+1}-B^{2p+1}}{\sqrt{5}}≡\frac{B^2A-AB^2}{\sqrt{5}}≡AB≡1(mod\ p) \]

\[f(2p+2)=\frac{A^{2p+2}-B^{2p+2}}{\sqrt{5}}≡0(mod\ p) \]

\[f(2p+3)=f(2p+1)+f(2p+2)≡1(mod\ p) \]

可发现 \((f(0),f(1))\)\((f(2p+2),f(2p+3))\) 相等,故 \(m|2p+2\)

对于质数的幂 \(p^k\)

  • 结论1

\(a≡1(mod\ p)\) ,则 \(a^{p^k}≡1(mod\ p^{k+1})\)

证明可用二项式定理,具体地,令 \(a=px+1\) ,则

\[a^{p^k}=\sum\limits_{i=0}^{p^k}\binom{p^k}{i}(px)^i≡1(mod\ p) \]

设在模 \(p\) 意义下循环节长度为 \(m\) ,在模 \(p^k\) 意义下循环节长度为 \(m'\) ,则有

\[f(m)=\frac{A^m-B^m}{\sqrt{5}}≡0 (mod\ p) \]

\(A^m≡B^m(mod\ p)\)

\[f(m+1)=\frac{A^{m+1}-B^{m+1}}{\sqrt{5}}≡f(1)≡\frac{A-B}{\sqrt{5}}(mod\ p) \]

\(A^{m+1}-B^{m+1}-A+B≡0(mod\ p)\) ,化简一下,得 \((A-B)(A^m-1)≡0(mod\ p)\)

所以有

\[A^m≡B^m≡1(mod\ p) \]

\[(A^m)^{p^{k-1}}≡(B^m)^{p^{k-1}}≡1(mod\ p^k) \]

很显然了,循环节 \(m'|mp^{k-1}\)

可断言 \(m'=mp^{k-1}\) (无一反例),但数学界目前暂未证明出来。

对于合数 \(p=p_1^{a_1}p_2^{a_2}...p_k^{a_k}\)

我们记 \(g(p)\) 表示模 \(p\) 意义下的循环节长度,则满足

\[\begin{cases}f(g(p))≡0(mod\ p_1^{a_1})\\ f(g(p)+1)≡0(mod\ p_1^{a_1})\\f(g(p))≡0(mod\ p_2^{a_2})\\f(g(p)+1)≡0(mod\ p_2^{a_2})\\...\end{cases}\]

显然 \(g(p)=lcm_{i=1}^{k}g(p_i^{a_i})\)

只需要做一次 \(CRT\) 即可得到答案。

上界估计

先剔除 \(p_i=2\)\(p_i=3\)\(p_i=5\) ,则有

\[g(p)=lcm_{i=1}^{k}g(p_i^{a_i})\le lcm_{i=1}^{k}\left(p_i^{a_i-1}g(p_i)\right)\le 4p\prod\limits_{i=1}^{k}\frac{p_i-1}{2p_i} \]

如果加入 \(p_i=2\) ,则乘上 \(3\times 2^{a_i-1}\) ;对于 \(p_i=3,5\) 同理。

\(g(p)\le 6\times p\)

posted @ 2020-10-30 11:21  wlzhouzhuan  阅读(2084)  评论(3编辑  收藏  举报