2
大学数学基礎解説
文献あり

バイナリ列に現れるフィボナッチ数

103
0

フィボナッチ数を以下で定義する.
F00, F11,FnFn1+Fn2(n2).
フィボナッチ数は小さい方から順に
(F0,F1,F2,)=(0,1,1,2,3,5,8,13,21,)
である.

バイナリ列にはフィボナッチ数が隠れている.
例えば,長さnのバイナリ列w{0,1}nのうち,1が連続しないものの数はフィボナッチ数Fn+2であることが知られている [1].
ここでは,これとは別の方法でバイナリ列を数えるとフィボナッチ数が現れることを紹介する.

連続する1の長さを並べる写像f

バイナリ列wの中で1が連続する部分を,1のクラスターと呼ぶ.1のクラスターの大きさを順番に並べた列を作る写像を定義する.

写像f:{0,1}N

バイナリ列w
w=0a11b10a21b20ar1br
と書いたとする.但しa1,brは非負整数,それ以外のai,biは正の整数とする.
このとき,br>0ならば
f(w)(b1,,br)
br=0ならば
f(w)(b1,,br1)
と定義する.

f(0010111011001)=(1,3,2,1),
f(111010)=(3,1),
f(111)=(3),
f(0000)=()
最後の右辺は空列である.

集合FnFnf({0,1}n2)={f(w)w{0,1}n2}と定義する.
つまり,Fnは,長さn2のバイナリ列の中で連続する1がとりうる並び方の集合である.

f(000)=(),f(001)=(1),f(010)=(1),f(100)=(1),
f(011)=(2),f(101)=(1,1),f(110)=(2),f(111)=(3)
なので,
F5={(),(1),(2),(1,1),(3)}

主張

以下が成り立つ.

|Fn|=Fn.

長さn2のバイナリ列の集合は,以下の三つに分割される.

場合1. バイナリ列に1のクラスターがあるならば,最初の1のクラスターの大きさが2以上であるもの.(ここには0n2も含まれる.)
場合2. バイナリ列が10で始まるもの.
場合3. それ以外のもの.つまり,バイナリ列が0で始まり,かつ,1のクラスターがあり,かつ,最初の1のクラスターの大きさが1であるもの.

そのようなものの集合をそれぞれ,S1,S2,S3としておく.
するとまず,
|f(S1)|=|Fn1|,|f(S2)|=|Fn2|,f(S1)f(S2)=
である.
なぜならば,S1の元は,長さn3のバイナリ列の最初の1のクラスターをひとつ大きくすることで得られ,S2の元は長さn4のバイナリ列の先頭に10をつけることで得られるからである.

そして次に
f(S3)f(S2)
である.
なぜならば,S3に属するバイナリ列は
w=0a110a2(a1,a2>0)
という形をしているが,それを
w=10a1+a2
に変えれば,wS2,f(w)=f(w)となるからである.

以上から,
|Fn|=|f(S1)f(S2)f(S3)|=|f(S1)|+|f(S2)|=|Fn1|+|Fn2|.

参考文献

投稿日:2023124
更新日:2023124
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

Do everything bijectively.

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中