プログラミングとコナン

Pythonで学ぶ高校数学の美しい物語(フィボナッチ数列と黄金比)

私は昔塾で数学を教えていました。

このシリーズの1本目なので取り組みやすいものとして数列を扱います。

プログラミングスクールに関しては下の記事で詳しく記述しています。

こちらで紹介しているスクールは、すべて無料期間がある優良なスクールのみで、特徴を明確にし、読者のニーズに絞って丁寧に解説しました。初めての一歩として、無料説明会に参加してみてください。

【全スクール無料体験あり!】プログラミングを学びたい人におすすめのスクール5選!

フィボナッチ数列とは

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89…

という数列です。この数列の特徴は

  • 最初の2項は「1」
  • 第3項目以降は前の2つの項の合計

になっているのが分かると思います。

つまり、フィボナッチ数列の一般項をan(a1 = a2 = 1)とすると、

an = an – 1 + an – 2

となります。

なので、「89」の次の項は、a12 = a11 + a10 = 89 + 55 = 144となります。

また、第n項を求める一般項は次のように表現できます。

これを「ビネの公式」といいます。

ちなみに、前の3つの項の合計が次の項になる数列を「トリボナッチ数列」といいます。

フィボナッチ数列と黄金比

黄金比とは

黄金比は、φ = (1 + √5) / 2 = 1.618033…と永遠に続く無理数です。

今回の記事では、この値を知っていれば大丈夫です。

ただし、詳しく知りたい方は各自で調べてください。(Wikipedia

隣り合う2項の比について

a2/a1, a3/a2, a4/a3…のように、an+1/anを計算していくと、先ほどの黄金比の値に近づいていきます。これは、黄金比の一般項を求める「ビネの公式」と極限を理解していると簡単に説明できます。

これを計算すると、結局「φ」になります。

黄金比の近似値を求めるプログラム

第n項目と第(n + 1)項目の比を求めるプログラムを作成しました。

グラフの結果は以下の通りです。

picture
第1項~第15項
picture
第15項~第15 * 15項まで15項ずつ

画像の右側の結果を得るためには、サンプルコードの23と26行目の「x1」,「y1」を「x2」,「y2」に変更してください。

試しに以下の命令を実行した時の出力結果は次のようになります。

φ = 1.61803398874989484…なのでかなりの精度で近似値が得られています!すごいですね!

フィボナッチ数列とパスカルの三角形

パスカルの三角形とは

高校数学で二項定理などを習ったと思いますが、そこで扱う係数を並べたものを「パスカルの三角形」といいます。

出典

フィボナッチ数列とパスカルの三角形の関係性

フィボナッチ数列の一般項から、「 an – 1 」と 「 an – 2 」 は次のように変形できます。

この係数が、先ほどの「パスカルの三角形」と関わってきます。

さらに分解していきます。

このように、各項を分解していくことで、その係数がパスカルの三角形の数字と一致します。面白いですね!

パスカルの三角形を表現するプログラム

こちらもプログラムを作成してみました。出力結果はきれいな三角形にはならないです。

三角形を表現するためには、桁数を計算して、空白を入れる処理をする必要がありますが、今回はしませんでした。

結果の例は以下の通りです。

まとめ

最後までお読みいただきありがとうございます!

今回は、フィボナッチ数列に関わる、「黄金比」と「パスカルの三角形」を表現するプログラムを作成しました。単に手で計算するよりも、プログラムを作成して、大きな数を計算させることによってわかる面白さを感じられたでしょうか!?

今後も数学とPythonで面白いことを公開していくつもりですので、よろしくお願いいたします!

プログラミングスクールに関しては下の記事で詳しく記述しています。

こちらで紹介しているスクールは、すべて無料期間がある優良なスクールのみで、特徴を明確にし、読者のニーズに絞って丁寧に解説しました。初めての一歩として、無料説明会に参加してみてください。

【全スクール無料体験あり!】プログラミングを学びたい人におすすめのスクール5選!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA