Fibonacci数(Fibonacci number)とは、$F_0=0$、$F_1=1$、$F_{n+2}=F_{n+1}+F_n$ で定まる数 $0,1,1,2,3,5,8,13,21,\dots$ であり、その列を Fibonacci 数列という。黄金比 $\varphi=(1+\sqrt5)/2$ と $\psi=(1-\sqrt5)/2$ により $F_n=(\varphi^n-\psi^n)/\sqrt5$(Binet の公式)と書け、隣り合う項の比は $\varphi$ に近づく。Cassini の恒等式 $F_{n+1}F_{n-1}-F_n^2=(-1)^n$、最大公約数の公式 $\gcd(F_m,F_n)=F_{\gcd(m,n)}$ が成り立ち、すべての正の整数は隣り合わない Fibonacci 数の和にただ一通りに書ける(Zeckendorf の定理)。
生まれたばかりの兎のつがいが 1 組いて、どのつがいも生まれた月の 2 か月後から毎月 1 組ずつ子を産み、死なないとする。最初の月から各月のつがいの数を数えると
$$
1,\ 1,\ 2,\ 3,\ 5,\ 8,\ 13,\ 21,\ 34,\ 55,\ \dots
$$
となる。今月のつがいは、先月からいるつがいと、先々月までに生まれていたつがいが今月産んだ子の和なので、各項は直前の 2 項の和である。これは Leonardo Pisano(Fibonacci)が 1202 年の『算盤の書』(Liber Abaci)で扱った問題で、10 か月目のつがいは $55$ 組になる(KT17 §9.1.1、Dic19 p. 393)。この数列には多くの規則が隠れている。たとえば $100=89+8+3$ のように、どの正の整数も「隣り合わない」Fibonacci 数の和にただ一通りに書け(thm-fib-zeckendorf)、$144$ と $2584$ はそれぞれ $F_{12}$ と $F_{18}$ で、その最大公約数 $8$ は $F_6$($6=\gcd(12,18)$)である(thm-fib-gcd)。
非負整数 $n$ に対し、$F_n$ を
$$
F_0=0,\qquad F_1=1,\qquad F_{n+2}=F_{n+1}+F_n\quad(n\geq0)
$$
で定める。$F_n$ を第 $n$ Fibonacci数(Fibonacci number)といい、数列 $(F_n)_{n\geq0}$ を Fibonacci数列(Fibonacci sequence)という。
漸化式が直前の 2 項だけで次の項を決めるので、$F_0,F_1$ を与えれば全項がただ一通りに定まる。すべての $F_n$ は非負整数であり、$n\geq1$ で $F_n\geq1$、$n\geq2$ で $F_{n+1}>F_n$ である($F_{n+1}=F_n+F_{n-1}$ で $F_{n-1}\geq1$)。
添字の付け方には流儀がある。$F_1=F_2=1$ から始めて $F_0$ を置かない本も多いが(Ham §10.5)、$F_0=0$ を置いても $n\geq1$ の値は同じである(KT17 §9.1.1、Lev §4.4.3)。本記事は $F_0=0$ を含める流儀をとる。$F_0=0$ を置くと、後で述べる最大公約数の公式が $n=0$ を含めてそのまま成り立つ。
Fibonacci 数列は、各項が直前の項の「約 $1.618$ 倍」になっていく。実際、隣り合う項の比は $2/1=2$、$3/2=1.5$、$5/3=1.666\ldots$、$8/5=1.6$、…と上下に振れながら黄金比(黄金比)
$$
\varphi=\frac{1+\sqrt5}{2}=1.6180339\ldots
$$
に近づく(prop-fib-ratio-limit)。$\varphi$ は $x^2=x+1$ の正の根であり、漸化式 $F_{n+2}=F_{n+1}+F_n$ を「$F_n$ が等比数列 $x^n$ ならば」と読むと $x^2=x+1$ が現れる。Fibonacci 数列は等比数列ではないが、$\varphi^n$ と $x^2=x+1$ のもう一つの根の $n$ 乗の組合せとして正確に書ける(thm-fib-binet)。
$F_0,\dots,F_{20}$ は
$$
0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765
$$
である(KT17 §9.1.1、PDF p. 208)。たとえば $F_{12}=144$、$F_{18}=2584$、$F_{19}=4181$、$F_{20}=6765$ である。比 $F_{20}/F_{19}=6765/4181=1.61803396\ldots$ は $\varphi=1.61803398\ldots$ と小数第 7 位まで一致する。
Fibonacci 数は、漸化式から直接には見えない数え上げの問題にも現れる。
$n\geq1$ とする。
1:敷き詰め方の数を $c_n$ とし、$c_0=1$(空の敷き詰め 1 通り)とおく。$c_1=1$ である。$n\geq2$ のとき、右端の列が縦置きのドミノ 1 枚で覆われる敷き詰めは、残りの $2\times(n-1)$ の敷き詰めと一対一に対応し、$c_{n-1}$ 通りある。そうでなければ右端の上下のマスは横置きのドミノで覆われ、2 枚の横置きのドミノが右端の 2 列をちょうど覆うので、残りの $2\times(n-2)$ の敷き詰めと一対一に対応し $c_{n-2}$ 通りある。よって $c_n=c_{n-1}+c_{n-2}$ であり、$c_0=1=F_1$、$c_1=1=F_2$ と合わせて、帰納法により $c_n=F_{n+1}$ である。
2:そのような列の個数を $a_n$ とし、$a_0=1$(空の列)とおく。$a_1=2$ である。$n\geq2$ のとき、末尾が $0$ の列は長さ $n-1$ の条件を満たす列の末尾に $0$ を付けたものと一対一に対応し、末尾が $1$ の列は直前が $0$ でなければならないので、長さ $n-2$ の条件を満たす列の末尾に $01$ を付けたものと一対一に対応する。よって $a_n=a_{n-1}+a_{n-2}$ であり、$a_0=1=F_2$、$a_1=2=F_3$ と合わせて $a_n=F_{n+2}$ である。
1 は KT17 Example 9.2、2 は同 Example 9.3(PDF p. 209。そこでは結論が $f_{n+1}$ と書かれているが、$a_1=2=F_3$ なので $F_{n+2}$ が正しい)にある。たとえば長さ 3 の列 8 個のうち $1$ が続くのは $110,011,111$ の 3 個なので、残りは $5=F_5$ 個である。
$F_n$ が偶数であるのは $n$ が $3$ の倍数のときに限る(Ham 第 10 章の演習 42(PDF p. 209))。実際、$F_n$ を $2$ で割った余りは $0,1,1,0,1,1,0,\dots$ と進む。余りの列は直前の 2 項の余りだけで決まり、$(F_3,F_4)$ の余りが $(F_0,F_1)$ の余り $(0,1)$ と同じなので、余りの列は周期 $3$ で繰り返し、$0$ が現れるのは添字が $3$ の倍数のところだけである。同じ考え方で、どの正整数 $m$ についても $F_n$ を $m$ で割った余りの列は周期的になる(数え上げ組合せ論 の記事の命題「Fibonacci 数列の剰余の周期」)。
$F_3=2$、$F_5=5$、$F_7=13$、$F_{11}=89$、$F_{13}=233$、$F_{17}=1597$ はどれも素数であり、添字もすべて素数である。しかし「$n$ が素数ならば $F_n$ は素数」は成り立たない。添字 $19$ は素数だが $F_{19}=4181=37\cdot113$ は合成数である。逆向きの「$F_n$ が素数ならば $n$ は素数」は $n\geq5$ に限れば正しい(prop-fib-prime-index)が、$n=4$ では $F_4=3$ が素数なのに $4$ は合成数なので、$n\geq5$ の条件は外せない。Fibonacci 数に素数が無限に含まれるかどうかは知られていない。
以下、$\varphi=\frac{1+\sqrt5}{2}$、$\psi=\frac{1-\sqrt5}{2}$ とおく。これらは $x^2-x-1=0$ の 2 根であり、
$$
\varphi+\psi=1,\qquad \varphi\psi=-1,\qquad \varphi-\psi=\sqrt5,\qquad \varphi^2=\varphi+1,\qquad \psi^2=\psi+1
$$
を満たす。$\psi=-1/\varphi=-0.618\ldots$ なので $|\psi|<1$ である。
すべての $n\geq0$ について
$$
F_n=\frac{\varphi^n-\psi^n}{\sqrt5}
$$
である。
右辺を $G_n$ とおく。$G_0=0$、$G_1=(\varphi-\psi)/\sqrt5=1$ である。$\varphi^2=\varphi+1$ の両辺に $\varphi^n$ を掛けると $\varphi^{n+2}=\varphi^{n+1}+\varphi^n$ であり、$\psi$ についても同様なので、
$$
G_{n+2}=\frac{\varphi^{n+2}-\psi^{n+2}}{\sqrt5}=\frac{(\varphi^{n+1}-\psi^{n+1})+(\varphi^n-\psi^n)}{\sqrt5}=G_{n+1}+G_n
$$
である。$(G_n)$ と $(F_n)$ は同じ初期値と同じ漸化式をもつので、$n$ に関する数学的帰納法($n$ と $n+1$ で一致すれば $n+2$ でも一致する)によりすべての $n$ で一致する。
この公式は、漸化式 $a_{n+2}=a_{n+1}+a_n$ の解を $a_n=x^n$ の形で探すと $x^2=x+1$ が得られ、その 2 根の冪の組合せ $a\varphi^n+b\psi^n$ の係数を初期値から決める、という特性根の方法から自然に得られる(Lev §4.4.3、PDF p. 376–378)。$\sqrt5$ を含む式がすべての $n$ で整数になることは一見意外であるが、証明のとおり漸化式が保証している。公式は J. Binet が 1843 年に記した(Dic19 p. 394)。
すべての $n\geq0$ について、$F_n$ は $\varphi^n/\sqrt5$ に最も近い整数である。
thm-fib-binet より $\bigl|F_n-\varphi^n/\sqrt5\bigr|=|\psi|^n/\sqrt5\leq1/\sqrt5<1/2$ である($|\psi|<1$、$\sqrt5>2$)。距離が $1/2$ 未満の整数はただ一つなので、$F_n$ が最も近い整数である。
たとえば $\varphi^{20}/\sqrt5=6765.0000295\ldots$ で、$F_{20}=6765$ である。
すべての $n\geq1$ について $\varphi^{n-2}\leq F_n\leq\varphi^{n-1}$ である。
$n=1$ では $\varphi^{-1}<1=F_1=\varphi^0$、$n=2$ では $\varphi^0=1=F_2<\varphi$ である。$n\geq1$ で $n$ と $n+1$ について成り立つとすると、$\varphi^2=\varphi+1$ から
$$
F_{n+2}=F_{n+1}+F_n\leq\varphi^n+\varphi^{n-1}=\varphi^{n-1}(\varphi+1)=\varphi^{n+1}
$$
であり、同様に $F_{n+2}\geq\varphi^{n-1}+\varphi^{n-2}=\varphi^{n}$ である。
したがって $F_n$ の十進桁数は $n$ にほぼ比例して増え、$\log_{10}\varphi=0.2089\ldots$ より、およそ 5 項ごとに 1 桁増える。
$\displaystyle\lim_{n\to\infty}\frac{F_{n+1}}{F_n}=\varphi$ である。
$n\geq1$ で $F_n\geq1$ である。thm-fib-binet の分子・分母を $\varphi^n$ で割り、$r=\psi/\varphi$ とおくと
$$
\frac{F_{n+1}}{F_n}=\frac{\varphi^{n+1}-\psi^{n+1}}{\varphi^n-\psi^n}=\frac{\varphi-\psi r^n}{1-r^n}
$$
である。$|r|=|\psi|/\varphi<1$ なので $r^n\to0$ であり(数列の極限)、右辺は $\varphi$ に収束する。
Ham §10.5(PDF p. 206)は、後で述べる Cassini の恒等式を $F_n^2$ で割ると $x=F_{n+1}/F_n$ が $x^2-x-1=(-1)^n/F_n^2$ を満たすことから同じ極限を導いている。その議論では極限の存在を前提にしているが、上の証明は存在も含めて示している。
2 次正方行列 $Q=\begin{pmatrix}1&1\\1&0\end{pmatrix}$ を考える。
すべての $n\geq1$ について
$$
Q^n=\begin{pmatrix}F_{n+1}&F_n\\F_n&F_{n-1}\end{pmatrix}
$$
である。
$n=1$ では $F_2=F_1=1$、$F_0=0$ なので正しい。$n$ で正しいとすると
$$
Q^{n+1}=Q^nQ=\begin{pmatrix}F_{n+1}&F_n\\F_n&F_{n-1}\end{pmatrix}\begin{pmatrix}1&1\\1&0\end{pmatrix}=\begin{pmatrix}F_{n+1}+F_n&F_{n+1}\\F_n+F_{n-1}&F_n\end{pmatrix}=\begin{pmatrix}F_{n+2}&F_{n+1}\\F_{n+1}&F_n\end{pmatrix}
$$
であり、$n+1$ でも正しい。
1:$Q^{m+n}=Q^mQ^n$ の右上の成分を比べる。左辺は $F_{m+n}$、右辺は $Q^m$ の 1 行目 $(F_{m+1},F_m)$ と $Q^n$ の 2 列目 $(F_n,F_{n-1})$ の積の和 $F_{m+1}F_n+F_mF_{n-1}$ である。
2:行列式は積を保つので $\det(Q^n)=(\det Q)^n=(-1)^n$ である。一方 prop-fib-matrix より $\det(Q^n)=F_{n+1}F_{n-1}-F_n^2$ である。
3:$n=0$ では $F_0=0$、$F_1=1$ なので $\gcd(F_0,F_1)=1$ である。$n\geq1$ なら、$F_n$ と $F_{n+1}$ の公約数 $d>0$ は 2 の左辺 $F_{n+1}F_{n-1}-F_n^2$ を割り切るので $d\mid1$、すなわち $d=1$ である。
2 は Cassini の恒等式と呼ばれる。たとえば $n=6$ では $F_7F_5-F_6^2=13\cdot5-64=1$ である。$F_{n-1}=F_{n+1}-F_n$ を代入すると $F_{n+1}^2-F_{n+1}F_n-F_n^2=(-1)^n$ となり、これは Ham §10.5 の命題(PDF p. 206、帰納法による証明)の式である。Dickson の歴史書は、隣り合う項の積と間の項の平方の差が $\pm1$ であることを R. Simson(1753 年)の記述として挙げている(Dic19 p. 393)。
すべての $n\geq0$ について $F_0+F_1+\cdots+F_n=F_{n+2}-1$ である。
$n=0$ では $0=F_2-1$ である。$n$ で成り立つとすると、$F_0+\cdots+F_{n+1}=F_{n+2}-1+F_{n+1}=F_{n+3}-1$ である。
この式は Ham 第 10 章の演習 25(PDF p. 208)、Lev §4.5 の演習 7(PDF p. 392)にもある。
すべての非負整数 $m,n$ について
$$
\gcd(F_m,F_n)=F_{\gcd(m,n)}
$$
である。ここで $\gcd(0,n)=n$ と約束する(したがって $\gcd(0,0)=0$、$F_0=0$ で両辺が一致する)。
$m+n$ に関する強い帰納法で示す。$m=0$ なら左辺は $\gcd(0,F_n)=F_n$、右辺は $F_{\gcd(0,n)}=F_n$ である。$n=0$ も同様である。$m=n$ なら両辺とも $F_m$ である。$m,n\geq1$、$m\neq n$ のときは対称性から $m>n$ としてよい。cor-fib-identities の 1 を $m-n\geq1$ と $n\geq1$ に使うと
$$
F_m=F_{(m-n)+n}=F_{m-n+1}F_n+F_{m-n}F_{n-1}
$$
である。$F_n$ の倍数を除いても最大公約数は変わらないので $\gcd(F_m,F_n)=\gcd(F_{m-n}F_{n-1},F_n)$ であり、$F_{n-1}$ と $F_n$ は互いに素(cor-fib-identities の 3)なので、これは $\gcd(F_{m-n},F_n)$ に等しい。$(m-n)+n< m+n$ なので帰納法の仮定から $\gcd(F_{m-n},F_n)=F_{\gcd(m-n,n)}$ であり、$\gcd(m-n,n)=\gcd(m,n)$ なので主張を得る。
証明は、添字の組 $(m,n)$ に Euclidの互除法(引き算の形)を施すと Fibonacci 数の組の最大公約数が変わらない、ということを示している。冒頭の例では $\gcd(F_{12},F_{18})=\gcd(144,2584)=8=F_6$ である。この定理は E. Lucas がより一般の数列について述べ、証明した定理の特別な場合である(Dic19 p. 396 の (III)。一般の Lucas 数列は Lucas数列の関係式 を参照)。
$m\geq1$、$n\geq0$ とする。$m\mid n$ ならば $F_m\mid F_n$ である。$m\geq3$ ならば逆も成り立つ。
$m\mid n$ なら $\gcd(m,n)=m$ なので、thm-fib-gcd より $\gcd(F_m,F_n)=F_m$、すなわち $F_m\mid F_n$ である。逆に $m\geq3$ で $F_m\mid F_n$ とすると $F_{\gcd(m,n)}=\gcd(F_m,F_n)=F_m$ である。$n=0$ なら $m\mid n$ は明らかなので $n\geq1$ とし、$d=\gcd(m,n)$ とおくと $1\leq d\leq m$ である。$F_m\geq F_3=2$ なので $F_d\geq2$、したがって $d\geq3$ である。添字 $2$ 以上で $F$ は狭義単調増加なので、$F_d=F_m$ と $d\leq m$ から $d=m$、すなわち $m\mid n$ である。
$m\geq3$ の条件は外せない。$F_2=1$ はすべての $F_n$ を割り切るが、$2\nmid3$ である($F_1=1$ も同様だが $1$ はすべての整数を割り切るので問題はない)。
$n\geq5$ で $F_n$ が素数ならば、$n$ は素数である。
$n\geq5$ が合成数だとすると、$n=ab$、$2\leq a\leq b< n$ と書ける。$b=2$ なら $a=2$、$n=4$ となって $n\geq5$ に反するので $b\geq3$ である。cor-fib-divisibility より $F_b\mid F_n$ であり、$3\leq b< n$ から $2\leq F_b< F_n$ である。よって $F_n$ は $1$ と自身以外の約数 $F_b$ をもち、素数でない。
Euclid の互除法で、入力の大きさの割に割り算の回数が多くなる典型は、隣り合う Fibonacci 数を入力したときである。たとえば $(F_{n+1},F_n)$ から始めると、最後の段を除いて各段の商が $1$ で余りが一つ前の Fibonacci 数になり、$n\geq2$ なら $n-1$ 回の割り算がかかる。逆に、$k$ 回の割り算を要する入力の小さいほうは $F_{k+1}$ 以上であることが、余りを後ろからたどる帰納法で示せる。これと prop-fib-growth を合わせると、G. Lamé が 1844 年に示した「互除法の割り算の回数は、小さいほうの数の十進桁数の 5 倍を超えない」という評価(Laméの定理)が得られる(Dic19 p. 394)。
冒頭の $100=89+8+3=F_{11}+F_6+F_4$ のように、正の整数は添字が 2 以上離れた Fibonacci 数の和に書ける。$100=89+5+3+2+1=F_{11}+F_5+F_4+F_3+F_2$ のように隣り合う Fibonacci 数を許すと書き方は一通りでなくなるので、「隣り合わない」という条件が一意性の要である。また $F_1=F_2=1$ の二重の数え方を避けるため、添字は $2$ 以上に限る。
$r\geq1$、$k_1>k_2>\cdots>k_r\geq2$ が $k_i-k_{i+1}\geq2$($1\leq i< r$)を満たすならば
$$
F_{k_1}+F_{k_2}+\cdots+F_{k_r}< F_{k_1+1}
$$
である。
$r=1$ では $k_1\geq2$ から $F_{k_1}< F_{k_1+1}$ である。$r\geq2$ とし、$r-1$ 項で正しいとする。$k_2,\dots,k_r$ に帰納法の仮定を使うと $F_{k_2}+\cdots+F_{k_r}< F_{k_2+1}\leq F_{k_1-1}$ である($k_2+1\leq k_1-1$ で、$F$ は添字 $1$ 以上で単調非減少)。よって和は $F_{k_1}+F_{k_1-1}=F_{k_1+1}$ より小さい。
すべての正の整数 $N$ は
$$
N=F_{k_1}+F_{k_2}+\cdots+F_{k_r},\qquad k_1>k_2>\cdots>k_r\geq2,\quad k_i-k_{i+1}\geq2
$$
の形にただ一通りに書ける。
存在:$N$ に関する強い帰納法で示す。$F_2=1\leq N$ であり $F_n\to\infty$ なので、$F_k\leq N$ となる最大の $k\geq2$ がある。$N=F_k$ ならそれが表示である。そうでなければ $N'=N-F_k$ は $0< N'< F_{k+1}-F_k=F_{k-1}$ を満たす($k$ の最大性から $N< F_{k+1}$)。$N'< N$ なので帰納法の仮定から $N'$ は表示をもち、その最大の添字 $j$ は $F_j\leq N'< F_{k-1}$ を満たす。$F$ は単調非減少なので $j< k-1$、すなわち $k-j\geq2$ であり、$N'$ の表示に $F_k$ を加えれば $N$ の表示が得られる。
一意性:同じ $N$ の表示が 2 つあり、使う添字の集合 $S,T$ が異なるとする。共通の添字を両方から除いた集合 $S',T'$ は交わらず、対応する和は等しく、どちらも隣り合う添字を含まない。一方が空なら和は $0$ なので他方も空となり $S=T$ に反するので、どちらも空でない。$S'$ の最大元を $s$、$T'$ の最大元を $t$ とすると $s\neq t$ であり、$s>t$ としてよい。lem-fib-zeckendorf-bound より $T'$ の和は $F_{t+1}$ より小さく、$t+1\leq s$ から $F_{t+1}\leq F_s$ であり、$F_s$ は $S'$ の和以下である。これは 2 つの和が等しいことに反する。
たとえば $1000=987+13=F_{16}+F_7$、$2026=1597+377+34+13+5=F_{17}+F_{14}+F_9+F_7+F_5$ である。この定理は E. Zeckendorf の名で呼ばれ、1972 年の論文に掲載された(Zec72)。存在の部分(相異なる Fibonacci 数の和に書けること)は Lev §4.6.5 の追加演習 4(PDF p. 403)で強い帰納法の練習として扱われ、解答のヒント(PDF p. 477)で隣り合わない和にできることが注意されている。
Fibonacci 数列の母関数は $\sum_{n\geq0}F_nt^n=t/(1-t-t^2)$ であり(数え上げ組合せ論 の記事の例「二項係数・Fibonacci 数・Catalan 数の母関数」)、これを部分分数に分解しても thm-fib-binet が得られる。同じ漸化式を初期値 $L_0=2$、$L_1=1$ で解いた $2,1,3,4,7,11,\dots$ を Lucas 数といい、$L_n=\varphi^n+\psi^n$ である。一般の 2 項間の線形漸化式の解(Lucas 数列)の恒等式は Lucas数列の関係式 の記事にまとめられている。また隣り合う項の比 $F_{n+1}/F_n$ は $\varphi$ の連分数展開 $1+\cfrac{1}{1+\cfrac{1}{1+\cdots}}$ の近似分数である(Dic19 p. 393 は R. Simson の指摘として挙げる)。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する