斐波那契数列の循环节

Posted wlzhouzhuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了斐波那契数列の循环节相关的知识,希望对你有一定的参考价值。

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

问题

求斐波那契数列在模 (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}=sumlimits_{i=0}^{p^k}inom{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) 意义下的循环节长度,则满足

[egin{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) ight)le 4pprodlimits_{i=1}^{k}frac{p_i-1}{2p_i} ]

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

(g(p)le 6 imes p)

以上是关于斐波那契数列の循环节的主要内容,如果未能解决你的问题,请参考以下文章

2021/6/10 刷题笔记斐波那契数列+泰波那契数

13.斐波那契数

剑指offer-斐波那契数列-递归和循环-python

算法动态规划 - 斐波那契数

斐波那契数列

2834 斐波那契数