求Fibonacci数列的循环节

来源:互联网 发布:德兴软件ui设计师 编辑:程序博客网 时间:2024/06/04 19:01


求Fibonacci数列的循环节

Mathematics, by zimpha.

 

距离上一篇指数循环节貌似过了好几天了,今天就来写一下如何求解Fibonacci数列循环节,这个循环节当然是指模一个数的条件下,然后我会介绍如何求广义Fibonacci数列的循环节。

我们先来看第一部分。

Fibonacci数列循环节

首先,我们知道Fibonacci数列的递推公式是: F n+1 =F n +F n1 for n>1 

我们也知道Fibonacci数列的通项公式是: F n =15    (ϕ  n ϕ ¯ ¯ ¯    n )  ,其中 ϕ=1+5   2 ,ϕ ¯ ¯ ¯  =15   2  

下面我们给出循环节的定义

Fibonacci数列模一个数 j  的循环节 m  是一个最小的整数满足: F m 0modj,F m+1 1modj  。并且如果 k  是Fibonacci数列的一个循环节,那么 k  必是 m  的倍数。

接下来写几个下面需要用到的定理。

定理1

p  是一个质数, n,a  是一个正整数,如果 a1modp  ,那么 a p n  1modp n+1  

这个定理可以用数学归纳法证明,这里就不再多说。

引理1

p  是一个质数, k  是一个正整数,如果 m F n modp  的循环节,那么 ϕ mp k1  ϕ ¯ ¯ ¯   mp k1  1modp k  

证明:由于 F m =ϕ  m ϕ ¯ ¯ ¯    m 5    0modp  ,那么 ϕ  m ϕ ¯ ¯ ¯    m modp 

F m =F m+1 F 1 =ϕ m+1 ϕ ¯ ¯ ¯    m+1 5    ϕϕ ¯ ¯ ¯  5    =ϕ(ϕ m 1)ϕ ¯ ¯ ¯  (ϕ ¯ ¯ ¯    m 1)5     

然后由于 ϕ  m ϕ ¯ ¯ ¯    m modp  ,我们得到

F m ϕ(ϕ m 1)ϕ ¯ ¯ ¯  (ϕ m 1)5    =(ϕ m 1)(ϕϕ ¯ ¯ ¯  )5    (ϕ m 1)0modp 

于是我们得到 ϕ ¯ ¯ ¯    m ϕ m 1modp 

利用定理1 ,我们就能得到 ϕ mp k1  ϕ ¯ ¯ ¯   mp k1  1modp k  

定理2

j  是一个正整数,并且 j= s i=1 p k i  i , p i  is a prime  ,设 m i  F n modp k i  i   的循环节。如果 m F n modj  的循环节,那么 m=lcm(m 1 ,m 2 ,,m s ) 

这个定理太显然了,就不证明了。

定理3

p  是一个不等于5的质数,那么5是 p  的平方剩余当且仅当 p±1mod5  ,5是 p  的非平方剩余当且仅当 p±2mod5 

这个定理用二次互反律很容易证明。

有了上面定理我们知道当 p±1mod5  时, ϕ,ϕ ¯ ¯ ¯    是有限域 F p   的元素;当 p±2mod5  时, ϕ,ϕ ¯ ¯ ¯    不是有限域 F p   的元素。出现第二个case的时候,我们不好办,需要把 F p   扩展使其包含 ϕ,ϕ ¯ ¯ ¯    ,这个都是后话,现在先略过。

定理4

p  是一个质数, m F n modp  的周期。如果 p±1mod5  ,那么 m|p1 

证明:因为 p±1mod5  ,那么 ϕ,ϕ ¯ ¯ ¯    是有限域 F p   的元素。于是利用费马小定理,我们可以得到

ϕ p1 1modp and ϕ ¯ ¯ ¯    p1 1modp 

然后就有 F p1 15    (ϕ p1 ϕ ¯ ¯ ¯    p1 )15    (11)0modp 

并且

F p  15    (ϕ p ϕ ¯ ¯ ¯    p )15    (ϕϕ ¯ ¯ ¯  )modp15    (1+5   1+5   2 )15    25   2 modp1modp  

于是 p  是其中一个循环节,那么 m|p1 

定理5

p  是一个质数, m F n modp  的周期。如果 p±2mod5  ,那么 m|2p+2  ,并且 2p+2m   是奇数。

我们知道 ϕ,ϕ ¯ ¯ ¯    不是有限域 F p   的元素。于是我们考虑下面这个有限域

F p (5   )={a+b5   a,bF p } 

于是

ϕ p =(1+5   2 ) p  =(12 +5   2 ) p =(12 ) p +(5   2 ) p =(12 ) p (1+5    p )=12 (1+5 p12  5   )=12 (15   )=15   2 =ϕ ¯ ¯ ¯    

同理可以得到 ϕ ¯ ¯ ¯    p =ϕ 

于是我们就可以得到下面的式子

F p ϕ p ϕ ¯ ¯ ¯    p 5    ϕϕ ¯ ¯ ¯  5    (p1)modpF p+1 ϕ p+1 ϕ ¯ ¯ ¯    p+1 5    ϕ ¯ ¯ ¯  ϕϕϕ ¯ ¯ ¯  5    0modp  

并且有 F p+2 F p +F p+1 (p1)modp  ,于是我们知道 mp+1 

然后在观察下面的式子

F 2p+1  ϕ 2p+1 ϕ ¯ ¯ ¯    2p+1 5    (ϕ p ) 2 ϕ(ϕ ¯ ¯ ¯    p ) 2 ϕ ¯ ¯ ¯  5    modpϕ ¯ ¯ ¯    2 ϕϕ 2 ϕ ¯ ¯ ¯  5    ϕϕ ¯ ¯ ¯  (ϕ ¯ ¯ ¯  ϕ5    )modp(1)(F 1 )(1)(1)modp1modp  

F 2p+2 ϕ 2p+2 ϕ ¯ ¯ ¯    2p+2 5    (ϕ p ) 2 ϕ 2 (ϕ ¯ ¯ ¯    p ) 2 ϕ ¯ ¯ ¯    2 5    ϕ ¯ ¯ ¯    2 ϕ 2 ϕ 2 ϕ ¯ ¯ ¯    2 5    modp 

于是 F 2p+3 F 2p+1 +F 2p+2 1modp 

于是 2p+2  是一个循环节,因此 m2p+2  ,由于 mp+1 2p+2m   是奇数。

好了现在,我们已经知道如何求Fibonacci模一个指数的循环节,现在我们考虑质数的幂次。

定理6

p  是一个质数,设 m F n modp  的最小循环节,如果 m   F n modp k   的最小循环节,那么 m  mp k1  

证明:由引理1我们可以知道

ϕ mp k1  ϕ ¯ ¯ ¯   mp k1  1modp k  

于是

F mp k1  ϕ mp k1  ϕ ¯ ¯ ¯   mp k1  5    115    0modp 

并且

F mp k1 +1 ϕ mp k1 +1 ϕ ¯ ¯ ¯   mp k1 +1 5    ϕϕ ¯ ¯ ¯  5    1modp 

显然我们可以得到 m  mp k1  

补充1:对于我们目前知道的所有素数,都有 m  =mp k1   ,因此我们在实际做题目的时候可以直接当做等于来用。

补充2m  =mp k1   成立的确切条件是 F n modp  的循环节和 F n modp 2   的循环节不同。

关于Fibonacci部分已经搞定了,我们来总结一下,定义 P(m)  为模 m  的循环节。

  1. P(m)=lcm(P(p k 1  1 ),P(p k 2  2 ),,P(p k s  s )) 
  2. P(p k )=P(p)p k1 , if P(p 2 )P(p) 
  3. P(p)p1,p±1modp 
  4. P(p)2p+2,p±2modp 

下面开始第二部分,广义Fibonacci数列的循环节。

广义Fibonacci数列的循环节

这个等有空再写

现在先填上一篇链接http://blog.csdn.net/acdreamers/article/details/25616461

这里的结论基本上和Fibonacci数列的结论没有什么区别,证明我就不写了,不理解的地方可以参考上面贴出的链接。

今天来补上这个部分,然后给一些规范的定义。

首先定义一下广义Fibonacci数列: G n+1 =AG n +BG n1  

然后设 p  是一个素数, K A,B (p)  表示 G n modp  的周期。

好了,我们开始求广义Fibonacci数列的循环节,由上面的递推是我们可以得到这个数列的递推矩阵

U=[A1 B0 ] 

并且可以知道这个矩阵的特征根 λ 1 ,λ 2   ,是方程 x 2 AxB=0  的两根。

根据平方剩余的知识,我们知道 λ 1 ,λ 2   可以在域 Z/pZ  中表示,当且仅当 Δ=A 2 +4B modp  的平方剩余。

类似定理4,我们可以得到以下定理。

定理7

p  是一个质数,如果 Δ modp  的平方剩余,那么 K A,B (p)p1  .

然后我们也有几个引理。

引理2

p  是一个奇质数,如果 Δ modp  的非平方剩余,那么 (Δ − −   ) p Δ − −   modp 

证明:因为 Δ modp  的非平方剩余,根据欧拉准则,我们有

Δ p12  1modp 

于是

(Δ − −   ) p =Δ − −   (Δ − −   ) p1 =Δ − −   (Δ) p12  Δ − −   modp 

引理3

如果 λ 1 ,λ 2   ,是方程 x 2 AxB=0  在域 F=F p 2    的两根,那么 λ p+1 1 =λ p+1 2   .

证明:首先我们知道 λ 1 +λ 2 =A  ,于是

λ p+1 1  =(Aλ 2 ) p+1 =(Aλ 2 ) p (Aλ 2 )=A(1λ 2 λ p 2 )+λ p+1 2 =λ p+1 2   

定理8

p  是一个质数,如果 Δ modp  的非平方剩余,那么 K A,B (p)2(p1)ord p (B 2 )  .

然后有一个定理:

ord n (a)=t u  是一个正整数,那么 ord n (a u )=t/(t,u)  .

于是定理8可以修改为以下形式

p  是一个质数,如果 Δ modp  的非平方剩余,那么 K A,B (p)p 2 1  .

因为 ord p (B 2 )|ϕ(p)  ,然后根据上面定理可知 ord p (B 2 )ϕ(p)/2  ,于是

2(p1)ord p (B 2 )2(p1)(p1)/2=p 2 1 and 2(p1)ord p (B 2 )p 2 1 

然后对于其他的一些东西就和Fibonacci数列类似了,参照上面的定理即可。

 

貌似这篇文章涉及了一些平方剩余和原根的知识,下次就写一篇科普一下这些知识。

0 0
原创粉丝点击