斐波那契数列の循环节
这问题咕咕咕了好久,来填坑了。
问题
求斐波那契数列在模 \(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(0),f(1))\) 和 \((f(p-1),f(p))\) 相等,故 \(m | p-1\) 。
2. 若 5 是模 p 意义下的二次非剩余
由欧拉判别准则知 \(5^{\frac{p-1}{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\) ,则
设在模 \(p\) 意义下循环节长度为 \(m\) ,在模 \(p^k\) 意义下循环节长度为 \(m'\) ,则有
故 \(A^m≡B^m(mod\ p)\)
故 \(A^{m+1}-B^{m+1}-A+B≡0(mod\ p)\) ,化简一下,得 \((A-B)(A^m-1)≡0(mod\ p)\)
所以有
很显然了,循环节 \(m'|mp^{k-1}\) 。
可断言 \(m'=mp^{k-1}\) (无一反例),但数学界目前暂未证明出来。
对于合数 \(p=p_1^{a_1}p_2^{a_2}...p_k^{a_k}\)
我们记 \(g(p)\) 表示模 \(p\) 意义下的循环节长度,则满足
显然 \(g(p)=lcm_{i=1}^{k}g(p_i^{a_i})\) 。
只需要做一次 \(CRT\) 即可得到答案。
上界估计
先剔除 \(p_i=2\) 、 \(p_i=3\) 和 \(p_i=5\) ,则有
如果加入 \(p_i=2\) ,则乘上 \(3\times 2^{a_i-1}\) ;对于 \(p_i=3,5\) 同理。
故 \(g(p)\le 6\times p\) 。