今回はJavaとJavaScriptを使って、数学的に有名な数列であるフィボナッチ数列をプログラミングで作りたいと思います。また、フィボナッチ数列と黄金比との比較もプログラミングで行ってみます。
フィボナッチ数列とは
フィボナッチ数列は以下のような数列のことを指します。
$$ 0,1,1,2,3,5,8,13,21,34,\ldots $$
この数列\(F_{n}\)は、1番目を\(F_{0}=0\)、2番目を\(F_{1}=1\)として、それ以降は1つ前と2つ前の数字を足した数字
$$ F_{n+2}=F_{n}+F_{n+1}\ \small(n\ge0) $$
になります。
ここで、フィボナッチ数列の隣同士の数字の比は、数列の項が後ろになればなるほど黄金比と呼ばれる\(1\colon\frac{1+\sqrt{5}}{2}\)に近似されるという特徴があります。
Javaでフィボナッチ数列を出力する
では、配列
とfor文
を使ってフィボナッチ数列を10番目まで出力させてみましょう。今回、配列を出力させるのにArraysクラス
のtoStringメソッド
を使っています。
フィボナッチ数列の比と黄金比との差も求めてみましょう。sqrtメソッド
を使って黄金比を出し、指定した数列の項の比との差を求めます。sqrtメソッド
の使用方法については以下の記事にまとめています。
プログラム上でも、先ほど説明した数列と同じものが出力されたことがわかります。今回は比較のため5、10の2回出力結果を出しました。出力結果を見ると、数字が大きい程、黄金比との差が小さくなることがわかります。
JavaScriptでフィボナッチ数列を出力する
JavaScript
で書いた場合だと以下の様になります。あまり違いはありませんね。
入力した数値の長さのフィボナッチ数列と黄金比との差を返すツールのようなものを作成してみました。入力可能数値は最大50となっており、それ以上の数値を入力した場合でも50として計算させています。
計算ツール
数列の長さを入力(最大50まで):
数列:
黄金比との差:
実行結果はJavaのものと同じになることも分かります。
今回はJavaとJavaScriptでフィボナッチ数列を出力してみました。
フィボナッチ数列は自然界にも現れることの多い不思議な数列です。「花びらの枚数」だったり「気管支の枝分かれ」にもフィボナッチ数列と関わりがあるようです。
プログラミングでフィボナッチ数列を表現する問題は、プログラミング初級者向けに良く見られるのでまとめてみました。以上で記事を終わりにします。
参考文献
関連記事