■フィボナッチ数列と有限体

 
 初項1,第2項1から始まり,隣り合う2項の和が次の項となるフィボナッチ数列
  1,1,2,3,5,8,13,21,34,55,89,・・・
の各項を2で割った余りをとると(mod2で考えると),
  1,1,0,1,1,0,・・・
3項ごとに元に戻ることがわかる.
 
 3で割った余りなら,
  1,1,2,0,2,2,1,0,1,1,2,・・・
のように8項毎に元に戻る.
 
 mod5のとき,
  1,1,2,3,0,3,3,1,4,0,4,4,3,2,0,2,2,4,1,0,1,1,2,・・・
20項毎に循環している.
 
 mod7のとき,
  1,1,2,3,5,1,6,0,6,6,5,4,2,6,1,0,1,1,・・・
16項毎に循環している.
 
 このような性質を周期性というのだが,任意の自然数でフィボナッチ数を割っていくと,必ず周期性が現れる.循環節の長さには,はたしてどういう規則があるのだろうか?
 
===================================
 
【1】黄金比とフィボナッチ数
 
 正五角形の1辺と対角線の長さの比が<黄金比>です.黄金比φは2次方程式:x2 −x−1=0の根であり,φ=(√5+1)/2=1.618です.1/φ=φ−1ですから,黄金比の逆数1/φは(√5−1)/2=0.618になります.
 
 黄金比は,古来より調和のとれた美しい比としてたくさんの美術作品の中に使われてきました.縦横比が黄金比,すなわち1:(√5+1)/2=1:1.618の長方形を黄金長方形とよびます.岩波新書版の縦横比もおおよそ黄金比倍になっています.また,植物の葉序に黄金比が使われていることは有名な話であり,黄金比は身近な現象にもしばしば登場しこの種の話題には事欠きません.
 
 黄金長方形から正方形を取り去ると再び小さい黄金長方形が残ります.同様にしてこの手続きは無限に続行できます.したがって,黄金比はユークリッドの互除法によって「1」だけを使って連分数に展開できる無理数であり,すなわち,
  (1+√5)/2=[1;1,1,1,1,1,・・・]
その意味では最もゆっくり収束する無理数であり,最もシンプルなフラクタル生成装置ともいえます.
 
 黄金比φには多くの性質があり,
  1,φ,φ^2,φ^3,φ^4,φ^5,・・・
という等比数列を考えると,
  1+φ=φ^2
ですから
  φ^n=φ^(n-1)+φ^(n-2)
 
 ここで,ガウス記号[x](xを超えない最大の整数)を用いると,数列{[φ^(n-1)]}の各次数に対応して得られる整数列は
  1,1,2,3,5,8,13,・・・
すなわち,フィボナッチ数列{Fn}となります.
 
[補]白銀長方形
 
 縦横比が白銀比,1:√2=1:1.414の長方形を白銀長方形とよびます.白銀長方形の長辺を2等分すると,半分の面積の白銀長方形となります.この性質を利用して,白銀比は世界中で用紙の大きさとして使われています.
 
 黄金比とは正五角形の1辺と対角線の長さの比であり,白銀比とは正方形の1辺と対角線の長さの比のことですが,正多角形の中で1辺と対角線の長さの比が一定に決まるのは,この2つだけしかありません.正三角形には対角線はなく,正六角形以上では対角線の長さが2種類以上になるからです.
 
===================================
 
 初項1,第2項1から始まり,隣り合う2項の和が次の項となる数列
  1,1,2,3,5,8,・・・
をフィボナッチ数列とよびます.
 
 一般に,数列{Xn−αXn-1}が公比βの等比級数になるものと仮定すると,
  Xn+1−αXn=β(Xn−αXn-1)
すなわち,
  Xn+1−(α+β)Xn+αβXn-1=0
根と係数の関係から,α,βは
  x^2−(α+β)x+αβ=0
の根でなけれならないのですが,このことから,この数列は2つの等比級数の1次結合
  Xn=cα^n+dβ^n
として表されます.
 
 フィボナッチ数列の一般項Fnは,3項漸化式:
  Fn=Fn-1+Fn-2
の特性方程式
  x^2−x−1=0
の2つの解:
  α=(1+√5)/2,β=(1−√5)/2
より,
  Fn =1/√5[{(1+√5)/2}^n−{(1−√5)/2}^n]
    =1/√5{φ^n−(−1/φ)^n}
     (F0 =0:φ=(1+√5)/2)
のように黄金比φを使って表すことができます.
 
 この式は1765年にオイラーが初めて発表したものですが,みんなに忘れられていてそれを再発見したビネにちなんでビネの公式(1843年)と命名されています.整数の数列に無理数である√5や黄金比φが出現する不思議に驚かれた経験をお持ちの方の少なくないでしょう.かくいう小生も心理的抵抗感を禁じ得なかったひとりです.
 
 第1項は等比級数的に増大し,第2項は符号が入れ替わりながら等比級数的に減少します.nが大きくなるほど第2項{(1−√5)/2}^nは0に近づきますから,この項を無視するとフィボナッチ数列は黄金比を公比とする等比数列に次第に近づくことになります.
  Fn =φ^n/√5
 
 また,フィボナッチ数列の各項はパスカルの三角形の対角線上の数の和に一致しています.2項係数とフィボナッチ数の間にも多くの関係があるのですが,この他にもフィボナッチ数は多くの性質をもっていて,以下にいくつか紹介しておきます.
  Fn・Fn+2=Fn+1^2−(−1)^n
  F1+F2+F3+・・・+Fn=Fn+2−1
  F1+F3+F5+・・・+F2n-1=F2n
  F2+F4+F6+・・・+F2n=F2n+1−1
  F1^2+F2^2+F3^2+・・・+Fn^2=Fn・Fn+1
 
 有名な幾何学的パラドックス<64cm^2=65cm^2>は,「不思議の国のアリス」の作者であるルイス・キャロルが創ったとも,パズルの大御所であるサム・ロイドが創ったともいわれているパズルです.きっと,いろいろな本でみたことのある方も多いと思います.
 
 このトリックは一直線をなすように使われた2つの線分の傾き3/8,5/13の相違がわれわれの視力の限界外となる錯覚を利用したもので,もっと先の数,たとえば8/21とかを使えばより巧妙なトリックになります.公式
  Fn・Fn+2=Fn+1^2−(−1)^n
は,3つ並んだフィボナッチ数の真ん中の数の平方は前後の2つの数の積より1大きいか小さいかのどちらかで,このトリックパズルのもとになっています.
 
===================================
 
 隣り合う2項の和が次の項となる数列はフィボナッチ数列の名で有名ですが,フィボナッチ数列{Fn}の通常型母関数f(x)は
    f(x)=F0+F1x+F2x^2+F3x^3+・・・
   xf(x)=   F0x+F1x^2+F2x^3+・・・
  x^2f(x)=       F0x^2+F1x^3+・・・
また,Fn=Fn-1+Fn-2より
  f(x)=x/(1−x−x^2)=ΣFnx^n
と簡単な式になります.
 
 さらに,1つの項の和がその前の3つの項の和になっている
  Tn=Tn-1+Tn-2+Tn-3
で定義される数列
  1,1,1,3,5,9,17,・・・
は,フィボナッチ数列の拡張とみなせるので,フィボナッチ(Fibonacci)をもじってトリボナッチ(Tribonacci)数列と呼ばれます.
 
 この数列でも連続する2項の比はある決まった値
  1/3{3√(19+3√33)+3√(19−3√33)+1}=1.839・・・
に収束します.これは
   x^3−x^2−x−1=0
の実根です.トリボナッチ数列は3次のフィボナッチ数列ですが,k次に一般化することもできるでしょう.
 
[補]通常型母関数と指数型母関数
 
 数列は補助変数xを用いてベキ級数としてうまく表すことができます.数列{an},すなわち,a0,a1,a2,・・・に対して,
  a0+a1x+a2x^2+・・・=Σanx^n=f(x)
で表される関数f(x)をその通常型母関数といいます.
 
 一方,
  a0/0!+a1/1!x+a2/2!x^2+・・・
を数列{an}に対する指数型母関数と呼びます.exp(x)は数列{1,1,1,・・・}の指数型母関数です.
 
 フィボナッチ数列{Fn}の指数型母関数
  f(x)=ΣFnx^n/n!
は微分方程式
  y”=y+y’
を満足するので,
  y=Aexp(λx)+Bexp(μx)
の形となります.
 
 ここで,λ,μは2次方程式
  x^2=1+x
の解ですから,
  λ=(1+√5)/2,μ=(1−√5)/2
また,A,Bを定めるためには
  f(x)=Aexp(λx)+Bexp(μx)
  f’(x)=Aλexp(λx)+Bμexp(μx)
において,x=0とおくと,A=1/√5,B=−1/√5
 
 以上より,
  φ=(1+√5)/2,−1/φ=(1−√5)/2
とおくと,指数型母関数は
  f(x)=1/√5[exp(φx)−exp(−x/φ)]
となります.
 
===================================
 
【2】フィボナッチ数の周期性
 
 フィボナッチ数Fnにはある程度の周期性があります.たとえば,フィボナッチ数の1の位は周期60で循環します.すなわち,F1,F61,F121の1の位は等しくなります.周期はずっと長くなりますが,下2桁(300周期),下3桁(1500周期)でも周期性があります.
 
 1の位が60の周期をもつことのFnの1の位とは,単にFn(mod10)のことです.Fn(mod m)も周期的になるのですが,ここで,Fn(mod m)の循環部分の長さを表にしてみましょう.
 
     m  Fn の周期     m  Fn の周期
     1    1       9   24
     2    3      10   60
     3    8      11   10
     4    6      12   24
     5   20      25  100
     6   24     100  300
     7   16    1000 1500
     8   12
 
 周期の長さはいろいろですが,そこには何か規則性が隠されているように感じられます.実際,フィボナッチ数列をmで割った余りについての周期の長さをf(m)とすると,
  f(m)が奇数→m=2
  f(m)=4s→F2s=0(mod m)
が成り立ちます.
 
 また,周期性はいくつかの整数を法とする合同で計算(わり算)を行ったときの余りに関連することなので,整除性(ある特定の整数で割り切れるという性質)と密接に関係します.
 
 F3=2ですが,2の倍数は3項ごとに現れます.以下,
  F4=3 → 3の倍数は4項ごとに現れる
  F5=5 → 5の倍数は5項ごとに現れる
  F6=8 → 8の倍数は6項ごとに現れる
 
 これにより,フィボナッチ数はきれいな規則性に従って並んでいることがわかりますが,フィボナッチ数の整除性をまとめると,
(1)各素数pに対して,pで割り切れるようなFnがある.
(2)奇素数p(p≠5)に対して
  p=±1(mod5)→Fp-1=0(modp)
  p=±2(mod5)→Fp+1=0(modp)
すなわち,
  p=±1(mod5)に対するFp-1はpで割り切れる.
  p=±2(mod5)に対するFp+1はpで割り切れる.
  p=5ならばp=Fp
(3)奇素数に対して
  Fp=5^((p-1)/2)(mod5)
なので,
  p=±1(mod5)←→Fp=+1(modp)
  p=±2(mod5)←→Fp=−1(modp)
 
===================================
 
【3】フィボナッチ数列と有限体
 
 いよいよ,今回のコラムのメインテーマとなるのですが,循環節の長さにどういう規則があるのかという問題に突入します.
  f(m)が奇数→m=2
  f(m)=4s→F2s=0(mod m)
だけではつまらないでしょう.
 
 ここでは有限体を扱うので,フィボナッチ数列を奇素数pを法として考えることにします.すると,奇素数pに対して循環する項数をf(p)とすると,
  f(3)=8,f(5)=20,f(7)=16,f(11)=10,
  f(13)=28,f(17)=36,f(19)=18,・・・
となっていますから,
  p=±1(mod5)のとき,f(p)=p−1
  p=±2(mod5)のとき,f(p)=2p+2
と予想できます.
 
 ただし,5は例外としておき,pは5以外の奇素数であるとします.そのとき,ビネの公式:
  Fn =1/√5[{(1+√5)/2}^n−{(1−√5)/2}^n]
はmodpで考えても意味をもつことになります.
 
 コラム「因数分解の算法(その3)」の復習になるのですが,
(1)もし√5すなわちx^2=5の根が有限体Fpの中にあれば,ビネの公式はFpの元として意味をもつ
(2)Fpの中になければ,その根はFp^2の中にあり,その根の一つを√5とすれば,ビネの公式はFp^2の元として意味をもつ
ことになります.
 
 たとえば,p=11であるとすると,方程式x^2=5(mod11)の根として,x=4とx=7の2根がありますから,√5=4とおくと,7=−4=−√5
したがって,
  (1+√5)/2=5/2=5・6=8
  (1−√5)/2=−3/2=8/2=4
より,法11でのフィボナッチ数列の一般項は
  Fn=1/4(8^n−4^n)=3・(8^n−4^n)
 
 確認のために計算してみると
  F1=3・4=1,F2=3・4=1,F3=3・8=2,
  F4=3・1=3,F5=3・9=5,・・・
となり,正しいことが確認されます.
 
 次に,p=7とすると,x^2=5(mod7)はF7の中には根をもたないので,x^2=5の一つの根を√5とおき,それをF7につけ加えて有限体F7^2をつくることができます.そのとき,もう一つの根は−√5になっており,一般項は
  Fn =1/√5[{(1+√5)/2}^n−{(1−√5)/2}^n]
とまったく同じ式で与えられます.
 
  F1 =1/√5[{(1+√5)/2}−{(1−√5)/2}]
    =1/√5・√5=1
  F2 =1/√5[{(1+√5)/2}^2−{(1−√5)/2}^2]
    =1/√5・√5=1
  F3 =1/√5[{(1+√5)/2}^3−{(1−√5)/2}^3]
は2^3=1を用いると
  F3 =1/√5[(2+√5)−(2−√5)]=2
となって正しいことが確認されます.
 
 5以外の奇素数pに対して,方程式x^2=5は
(1)p=±1(mod5)ならば,有限体Fpの中に根をもつ
(2)p=±2(mod5)ならば,有限体Fpの中に根をもちません.
 
===================================
 
 懸案の予想
  p=±1(mod5)のとき,f(p)=p−1
  p=±2(mod5)のとき,f(p)=2p+2
を証明してみましょう.
 
 これを示すには,
  Ff(p)=0,Ff(p)+1=1
が成り立つことをいえばよいのですが,p=±1(mod5)のとき,x^2=5を満たす元cが有限体Fpのなかにありますから,
  Ff(p)=Fp-1
     =1/c[{(1+c)/2}^(p-1)−{(1−c)/2}^(p-1)]
 
 ここで,フェルマーの定理により,有限体Fpのどんな元も
  a^(p-1)=1
(p乗すると元に戻る)ですから, 
  Ff(p)=Fp-1=1/c(1−1)=0
 
また,
  Ff(p)+1=Fp
      =1/c[{(1+c)/2}^p−{(1−c)/2}^p]
      =1/c[{(1+c)/2}−{(1−c)/2}]
      =1/c・c
      =1
が示されました.
 
 一方,p=±2(mod5)のとき,有限体Fpの中に根をもちませんから,一般項は
  Fn =1/√5[{(1+√5)/2}^n−{(1−√5)/2}^n]
とまったく同じ式で与えられます.
 
 ここで,[]の中を展開しますが,二項係数pCiは常にpで割り切れること,有限体Fp^2の元a+b√5(a,bは有限体Fpの元)に対して
  (a+b√5)^p=a−b√5
となることより,
  {(1+√5)/2}^(2p+2)=(3+√5)^(p+1)/2^(p+1)
  =(3+√5)^p(3+√5)/4
  =(3−√5)(3+√5)/4=1
 
 まったく同様にして
  {(1−√5)/2}^(2p+2)=1
より,
  Ff(p)=F2p+2=0
 
 さらに,
  Ff(p)+1=F2p+3
 =1/√5[{(1+√5)/2}^(2p+3)−{(1−√5)/2}^(2p+3)]
 =1/√5[{(1+√5)/2}−{(1−√5)/2}]
 =1
 
 これで予想が証明されたことになりますが,同時に,5以外の奇素数pに対して,フィボナッチ数の第f(p)項はpで割り切れることが示されました.
 
 なお,この定理の証明は
  [参]硲文夫「初等代数学」森北出版
に負っています.実は,小生,有限体を使ったこの意外な証明に驚いて,本コラムでも是非紹介したいと考えた次第です.如何でしたでしょうか?
 
===================================
 
[補]リュカ数列と素数判定法
 
  1,1,2,3,5,8,・・・
この数列にフィボナッチ(13世紀のイタリアの数学者でピサのレオナルドとしても知られる)の名を冠したのはフランスの数学者リュカで,ハノイの塔の名で知られる2進法のパズルも1883年にリュカによって考案されたものです.
 
 初項1,第2項3のフィボナッチ数列
  1,3,4,7,11,18,・・・
は彼にちなんでリュカ数列と呼ばれています(1877年).リュカ数列の一般項Lnは,
  Ln ={(1+√5)/2}^n+{(1−√5)/2}^n
    ={φ^n+(−1/φ)^n}
     (L0=2:φ=(1+√5)/2)
で表され,Ln=Fn-1+Fn+1の関係があります.リュカ数列はフィボナッチ数列と同じ漸化式をもち,連続する2つの項の比は黄金比に近づきます.
 
     m  Ln の周期     m  Ln の周期
     1    1       9   24
     2    3      10   12*
     3    8      11   10
     4    6      12   24
     5    4*    100   60*
     6   24    1000  300*
     7   16
     8   12
 
 リュカ数にはフィボナッチ数とは別の周期性が現れます.フィボナッチ数と異なるところに*印を付けておきました.とはいっても,リュカ数の周期とフィボナッチ数の周期は全部ではないにしても,ほとんどが一致します.
 
 両者の決定的な違いは,フィボナッチ数の循環節には必ず0が現れるのに対して,リュカ数のm=5やm=8の循環節には0が出てこないということです.これはリュカ数が5や8では決して割り切れないということを意味しています.もちろん5と8の倍数でも割れません.フィボナッチ数では任意の自然数mに対して,必ず割り切れるFnが存在します.
 
 また,フィボナッチ数とリュカ数の性質は,整除性という点でも大分様子が違っています.2の倍数は3項ごとに現れる,3の倍数は4項ごとに現れるなどは似ていますが,5の倍数や8の倍数は出てきません.フィボナッチ数がきれいな規則性に従って並んでいるのに対し,リュカ数では1,3から始めて前の2項を加えるという規則を多少変えただけで,そうはならないのです.
 
 リュカ数の整除性をまとめると
(1)素数pに対して
  Lp=1 (modp)
(2)奇素数(p≠5)に対して
  p=±1(mod5)→Lp-1=+2(modp)
  p=±2(mod5)→Lp+1=−2(modp)
 
===================================
 
 2n −1の形の数が素数であるためにはnが素数であることが必要条件です.一方,2^n+1の形が素数であるためにはn=2^mの形であることが必要です.しかし,このことは十分条件ではなく,指数nがどんな数のとき2^n−1,2^n+1が素数になるかはいまだに解決されていません.
 
 添字に2^nをもつリュカ数列{L2^n},すなわち,3,7,47,2207,4870847,・・・では,漸化式L2^(n+1)=(L2^n)^2−2が成り立ちますが,この漸化式とフェルマーの小定理(1640年)
  「もしpが素数であれば,任意の整数aに関してa^p−aはpの倍数である.」を応用した素数判定法がリュカテストです.
 
 リュカはフィボナッチ数列,リュカ数列を用いてメルセンヌ数(2^n−1)が素数であるかどうかを判定し,(2^127−1)が素数であることを示しています(1876年).この数は12番目のメルセンヌ素数で,1952年の13番目(2^521−1)からはコンピュータによる発見ですから,コンピュータを使わずに見つけられた最大のメルセンヌ素数になっていて,わかっている最大の素数として最長不倒記録を保ち続けました.
 
 1994年,アメリカのスーパーコンピュータ,クレイによって発見された258716桁の巨大な素数(2^859433−1)は現在知られている最大の素数(33番目のメルセンヌ素数)ですが,リュカテストはメルセンヌ数が素数であるか否か判定する非常に能率的なアルゴリズムとなっていて,リュカテストの効率のよさのおかげで最近の素数の世界記録はすべてメルセンヌ素数が独占しています.
 
 なお,フェルマー数(2^(2^n)+1)に対してはリュカテストと同じくらい能率的なペパンの素数判定法があり,コンピュータを使って6番目のフェルマー素数の探索が続けられているのですが,はたして本当に存在するのでしょうか?
 
 リュカやペパンの素数判定法によってある数が合成数とわかってもそれを素因数分解するのはとても大変な作業になります.現在,巨大な整数の素因数分解に楕円曲線法とか平方ふるい法とか能率のよい素因数分解法が考え出されています.
 
===================================