この記事を読むメリット
☑数列の和を工夫して計算する能力が磨かれます
☑数学マジックの種を見破れます。
☑1+1+2+3+5+8+13+\(\cdots\)=-1が実は,私たちの届かない世界で裏工作されているということが見破れます。
そもそもフィボナッチ数列とは
\(1,1,2,3,5,8,\cdots\)で表される数列です。そして,フィボナッチ数列は漸化式を使って次のように表すことが出来ます。
$$a_{n+2}=a_{n+1}+a_{n}\tag{1}$$
\(a_{1}=a_{2}=1\)
また,フィボナッチ数列の一般項は,
$$a_{n}=\frac{1}{\sqrt{5}}((\frac{1+\sqrt{5}}{2})^{n}-(\frac{1-\sqrt{5}}{2})^{n})\tag{2}$$
ということで,今日はフィボナッチ数列の一般項を使って,フィボナッチ数列の和を求めます。
フィボナッチ数列を1項目から\(n\)項目まで足し合わせた数を\(S_n\)とします。\(S_n\)を求めましょう。
\(S_n\)を求める方法として真っ先に思い浮かぶ方法は,
\(S_n=\sum_{k=1}^{n}a_k\)
として,計算する方法です。\(a_k\)に一般項を代入すると,
\(S_n=\sum_{k=1}^{n}\frac{1}{\sqrt{5}}((\frac{1+\sqrt{5}}{2})^{k}-(\frac{1-\sqrt{5}}{2})^{k})\)
となります。私は,このように複雑な式を見ると重度な絶望感に襲われて解く気力が失せてしまうのだが,皆さんはどうでしょうか?
しかーし,\(S_n\)を簡単に求める方法があるので,そちらを紹介します。
フィボナッチ数列の和を計算する簡単な方法
結論から言うと,\(S_n\)について,
$$S_n=a_{n+2}-1$$
が成立します。
え,どうしてわかるの?と思ったそこのユーに,
懇切丁寧に説明いたします。
まず,\(S_{n+2}\)と\(S_{n+1}\)の差を考えます。
$$\begin{array}{rr}
S_{n+2}&=1+1+2+3+\cdots+a_{n+1}+a_{n+2}\\
-)S_{n+1}&=1+1+2+3+\cdots+a_{n+1}\\
\hline
& S_{n+2}-S_{n+1}&= a_{n+2} \end{array}$$
確かに,\(S_{n+2}-S_{n+1}=a_{n+2}\)は成立しますが,私が求めている式はこんなありきたりな結果ではありません。
では,もう少しヒントをあげましょう。
$$\begin{array}{rr}
S_{n+2}&=1+&1+2+3+5+\cdots+a_{n+1}+a_{n+2}\\
-)S_{n+1}&=&1+1+2+3+\cdots+a_{n+1}\\
\hline
& \end{array}
$$
\(a_{n+2}-a_{n+1}\)は,式(1)を変形した式でしたね。ということで,式(1)より,
$$a_{n+2}-a_{n+1}=a_{n}$$
が成立します。
また,左辺は,\(S_{n+2}-S_{n+1}=a_{n+2}\)でしたので,項をそれぞれ引き算してあげると,
$$\begin{array}{rr}
S_{n+2}&=1+&1+2+3+5+\cdots+a_{n+1}+a_{n+2}\\
-)S_{n+1}&=&1+1+2+3+\cdots+a_{n+1}\\
\hline
& a_{n+2}&=1+&0+1+1+2+\cdots+a_{n}
\end{array}$$
そして,整理してあげると,
\(a_{n+2}=1+S_n\)
よって,
$$S_n=a_{n+2}-1$$
が示せましたので,\(S_n\)は式(2)から,
$$S_n=\frac{1}{\sqrt{5}}((\frac{1+\sqrt{5}}{2})^{n+2}-(\frac{1-\sqrt{5}}{2})^{n+2})-1\tag{3}$$
となります。
C言語を使って実際に計算
第20項までのフィボナッチ数列の総和を計算してみました。
第1項の総和 | 1 |
第2項の総和 | 2 |
第3項の総和 | 4 |
第4項の総和 | 7 |
第5項の総和 | 12 |
第6項の総和 | 20 |
第7項の総和 | 33 |
第8項の総和 | 54 |
第9項の総和 | 88 |
第10項の総和 | 143 |
第11項の総和 | 232 |
第12項の総和 | 376 |
第13項の総和 | 609 |
第14項の総和 | 986 |
第15項の総和 | 1596 |
第16項の総和 | 2583 |
第17項の総和 | 4180 |
第18項の総和 | 6764 |
第19項の総和 | 10945 |
第20項の総和 | 17710 |
ソースコードC言語
フィボナッチ数列の総和もフィボナッチ数列に近い?
フィボナッチ数列の一般項\(a_n\)は,
\(a_{n+2}=a_{n+1}+a_{n}\)
を満たします。では,フィボナッチ数列の総和の一般項\(S_n\)はどうでしょうか?
\(S_{n+2}=S_{n+1}+S_{n}+1\tag{4}\)
となります。1さえ無ければ,フィボナッチ数列と同じだったのですが,惜しいですね。
1+1+2+3+5+\(\cdots\)=-1は本当?
結論から言うと,1+1+2+3+5+\(\cdots\)=-1は2つの意味合いを持っていて,1つの意味合いでは間違っているが,もう1つの意味合いではあっています。
まず,皆さんが知っている方法で計算しましょう。\(S_n\)は,
\(S_{n}=\frac{1}{\sqrt{5}}((\frac{1+\sqrt{5}}{2})^{n+2}-(\frac{1-\sqrt{5}}{2})^{n+2})-1\)
でしたので,\(n\)に無限大を代入しましょう。すると,
\(S_{\infty}=\infty\)
となります。
次に,皆さんがおそらく知らないであろう,解析接続を使って計算します。
解析接続は,簡単にいうと有限の範囲では,ルールを守るけれど,無限になった瞬間にルールをやぶるイメージです。
$$\begin{array}{rr}
S_{\infty}&=1+&1+2+3+\cdots\\
-)S_{\infty}&=&1+1+2+\cdots\\
\hline
& 0=1+S_{\infty}
\end{array}$$
から,\(S_{\infty}=-1\)
という風に求まります。
この解析接続の話は,本記事では取り上げませんが,解析接続に興味がある方は,こちらのサイトをご覧ください。
まとめ
フィボナッチ数列の和は,
$$S_n=\frac{1}{\sqrt{5}}((\frac{1+\sqrt{5}}{2})^{n+2}-\frac{1-\sqrt{5}}{2})^{n+2})-1$$
フィボナッチ数列の無限和は
$$1+1+2+3+5+\cdots=-1$$
という等式は,ルール違反であるが間違っているとはいえない。
最後に
数列の和は,ごり押しでやらずに,本記事のようなスマートな解き方を覚えていってください。プログラマーの方は,思考停止でfor文,while文を使うより,繰返し処理をなるべく少なくできる式(3)を使う方がいい思います。解析接続という技は,数学のチート技なので,中学入試,高校入試,大学入試ではくれぐれも使わないようにしましょう。