フィボナッチ数はやばい~Zeckendorfの定理とKnuth積~
フィボナッチ数はやばい。とにかくやばい。
一応定義を述べておくと、フィボナッチ数とは
という再帰方程式で定義される自然数の列である。最初の数個を挙げると
と続いていく。これらの数が非常に多くの性質を持つことは、数学に造詣が深い人ならご存知かと思う。自分はあまり詳しい方ではないのでWikipediaの力を借りると、
英語版の方がより詳しいが、どの性質も一記事書けそうなネタになる。ここで更にスクロールしていくと次の一行がしれっと書かれている。
任意の正の整数は、1つ以上の連続しない相異なるフィボナッチ数の和として一意に表すことができる(ゼッケンドルフの定理)。
もう少し精確に書き直すと次のようになる。
定理(Zeckendorf, 1939) 任意の正の整数について、ある連続しない整数の増大列が存在して
を満たす。(ここではを意味する。)このようなの組は一意的である。
右辺の形をZeckendorf和と呼ぶことにする。定理は任意の正の整数がZeckendorf和を一意的に持つことを主張している。
証明は容易で、Wikipediaに乗っている方法でも良いが、Kuo-Jye Chenによる証明を紹介しよう。まず注意として以下は帰納法で簡単に示せる。
- のときが成り立つ。
- のときが成り立つ。
- のときが成り立つ。
- のときが成り立つ。
(証明)はをZeckendorf和で表す組の個数とする。なのでは明らかだろう。のZeckendorf和
が存在したとする。このとき
となるが、のときは
を得る。が偶数のときは先の注意より
を得る。が奇数のときも同様に
を得る。どの場合でも右辺はのZeckendorf和を与えている。従ってがで成り立つことが分かる。ここでであり、フィボナッチ数自身はZeckendorf和を与えているから
が従う。
これで正の整数をフィボナッチ数でコード化することができる。Fibonacci codingと呼ばれるそうだが、あまり使われてはいないらしい。これだけでも十分面白いのだが、Knuthは次のようなものを考えた。
定義 正の整数について、Zeckendorf和を
とする。このときKnuthのcircle積を
で定める。
この積が可換であることはすぐ分かる。が、Knuthは更に次を示した。
定理 circle積は結合的である。すなわち
が成り立つ。
やばい(語彙喪失)
Knuthの証明は直接的だが、個人的にやや難解だと感じる。一般にcircle積の右辺はZeckendorf和になっていない。これをZeckendorf和に直すためにDigit表示してから簡約をするのだが、その終結評価や結合性を示す過程にもやもや感が残る。Knuth的には自明なのだろうが。もっと分かり易い証明は無い物かと探したところ、ありました。以下Pierre Arnouxによる証明を紹介しよう。
まずKnuthと同様にDigit表示の空間を考える。これはまあどんなものでも良いが、今回は非負整数の有限列全体としよう。以下Digit表示をなどと表す。ここでに対し、自然数
を対応させる。この対応で、
より定まるDigit空間の部分集合の元がZackendorf和を与える。Zeckendorfの定理より、正の整数との元が一対一に対応することが分かる。正の整数に対応するの元をZeckendorf表示を呼びで表す。
写像を
で定める。これはKnuthのcircle積と可換になる。つまり
が成り立つ。
Arnouxのアイディアはを代数的に捉えることで幾何学的なモデルを構成したことにある。まず写像を
で定める。このときがの積と可換になる。つまり
が成り立つ。
次の補題が成り立つ。
(証明)帰納法よりが分かる。従って
が成り立つ。右辺は一次式なので、とすると一次の成分を比較してを得る。Zeckendorf表示の一意性よりが成り立つ。
補題 は積で閉じている。
(証明)を黄金比、をその共役とする。このとき環としての同型
が存在する。かつが鍵となる。について
と同一視できるが、右辺の和を偶数次と奇数次に分けることで(に注意する)、その上界と下界が
であることが分かる。つまりはと同一視できる。これが積で閉じていることは明らかなので、は積で閉じている。
Zeckendorf表示の積はZeckendorf表示の枠からはみ出てしまうが、多項式としてみれば積はきちんと収まっており、しかも単射で埋め込めているのでZeckendorf表示に戻すことができる。ところで多項式環の積が結合的なことは明白なので、Knuthのcircle積は結合的である。きちんと書くと、
より結合性が従う。(定理の証明終わり)
ちなみにについては簡単に計算することができる。というのもとなるを見つければよい。これはについて
が成り立つことから従う。特にZeckendorf和が分かっているなら、現れるフィボナッチ数の添え字を一つ下にずらしたものがとなる。このとき
を計算すれば、
を得る。例えば
だから、
である。
より確かに両者は一致する。
[1] Kuo-Jye Chen. Andrews's Argument Proves a Theorem of Zeckendorf. Math. Medley. Vol.34, No.1, pp.13-15, 2008.
[2] Donald E.Knuth. Fibonacci Multiplication. Appl. Math. Lett. Vol.1, No.1, pp.57-60, 1988.
[3] Pierre Arnoux. Some Remarks about Fibonacci Multiplication. Appl. Math. Lett. Vol.2, No.4, pp.319-320, 1989.
所感
久しぶりの数学ネタです。今回の内容は一般の線型再帰方程式などに拡張が色々考えられているようです。ちゃんと追えたらまた記事にしようかなと思います。Arnouxの証明は個人的にかなり示唆的で、詳細に検討する価値があると思います。具体的に計算をするアルゴリズムであったり、代数体の整数環における積閉集合であったり、あるいはDigit空間の力学系であったり、Pisot数との関連もありそうだったり、何か深い背景が隠れているような気がして研究意欲が沸きます。