フィボナッチ数列の計算
フィボナッチ数列のn番目の値を計算します。F(n−1)・黄金比への収束比・F(0)〜F(n)の数列も一覧表示。n = 0〜70 対応。
入力
結果
この計算機でできること
フィボナッチ数列は、最初の2項を 0 と 1 とし、以降の各項を直前の2項の和として定める数列です。項番号 n を指定すると第 n 項 F(n) が定まります。この計算では、項番号 n(0〜70)に対して F(n) を求め、あわせて F(n−1)、隣接項の比 F(n)/F(n−1)(黄金比への収束を示します)、F(0) から F(n) までの全項を表示します。
フィボナッチ数列とは
フィボナッチ数列は、各項が直前の2項の和になる数列です。
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …
定義は F(0) = 0、F(1) = 1、n ≥ 2 のとき F(n) = F(n−1) + F(n−2) です。
13世紀のイタリアの数学者レオナルド・ダ・ピサ(通称フィボナッチ)が1202年の著書『算盤の書(Liber Abaci)』でウサギの繁殖モデルとして紹介したことから「フィボナッチ数列」と呼ばれるようになりました。ただし同様の数列はサンスクリット韻律論の研究を通じてインド数学で何世紀も前から記述されていたことが知られています。
計算方法
このツールでは再帰ではなく反復法(ループ)で計算します。F(0) = 0 と F(1) = 1 を出発点として、前の2項を足しながら1ステップずつ進み、n − 1 回の加算で F(n) に到達します。計算量は O(n) で、単純な再帰実装で起こる指数的な呼び出し爆発を回避できます。
計算できる最大の項番号は n = 70 です。F(70) = 190,392,490,709,135 は、JavaScriptの64ビット倍精度浮動小数点数(IEEE 754 double)で整数として正確に扱える最大のフィボナッチ数です。F(71) 以降は安全整数の上限 2⁵³ を超えるため、丸め誤差が生じます。
計算例
入力: n = 12
| n | F(n) |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 3 |
| 5 | 5 |
| 6 | 8 |
| 7 | 13 |
| 8 | 21 |
| 9 | 34 |
| 10 | 55 |
| 11 | 89 |
| 12 | 144 |
結果: F(12) = 144、F(11) = 89、比 = 144/89 ≈ 1.61797753
144 = 12² でもあります。フィボナッチ数列の中で完全平方数になるのは 0・1・144 の3つだけです(リュングレンの定理、1941年)。
黄金比との関係
nが大きくなるにつれ、F(n) / F(n−1) は黄金比 φ に収束します。
| n | F(n) | F(n)/F(n−1) |
|---|---|---|
| 5 | 5 | 1.66667 |
| 10 | 55 | 1.61765 |
| 20 | 6765 | 1.61803 |
| 30 | 832040 | 1.61803399 |
n = 20 の時点で小数第6位まで φ と一致します。黄金比は正五角形の対角線と辺の比、パルテノン神殿をはじめとする建築物のプロポーション、ひまわりの種の螺旋(34本と55本の2方向の渦巻き)など、幾何学・芸術・自然界の随所に現れます。
ビネの公式
ビネの公式は F(n) を漸化式によらず直接求めます。
が黄金比、 がその共役です。
|ψ| < 1 なので ψⁿ は n が増えるにつれ 0 に近づきます。したがって n ≥ 1 では F(n) は に最も近い整数と一致します。閉形式で簡潔に表せる一方、浮動小数点演算に依存するため大きな n では丸め誤差が蓄積します。この計算では正確な整数値を保証するために反復法を使用しています。
自然界・科学での応用
フィボナッチ数列は、自然界や応用分野の多くの場面に現れます。
- 植物学(葉序): 多くの花の花弁の枚数はフィボナッチ数(3、5、8、13 など)です。ひまわりの種の配列には 34 本と 55 本の2方向の螺旋が見られます。
- 葉序(フィロタクシス): 葉や枝が φ に関連した角度(約137.5°=黄金角)で生えることで、葉同士が重なりにくく日光を効率よく受け取れます。
- 計算機科学: グラフアルゴリズムで使われるデータ構造「フィボナッチヒープ」はこの数列から命名されています。また、単純な再帰によるフィボナッチ計算は指数的時間計算量の典型例として情報科学教育でよく取り上げられます。
- テクニカル分析: フィボナッチリトレースメント(23.6%・38.2%・61.8%)は株式や外国為替(FX)市場のチャート分析で広く使われますが、その予測精度については議論があります。
よくある質問 (FAQ)
フィボナッチ数列とは何ですか?
フィボナッチ数列は、各項が直前の2項の和になる数列です。0, 1, 1, 2, 3, 5, 8, 13, 21, 34, … と続きます。定義はF(0) = 0、F(1) = 1、n ≥ 2 のとき F(n) = F(n−1) + F(n−2) です。名前の由来は13世紀イタリアの数学者レオナルド・ダ・ピサ(通称フィボナッチ)で、1202年の著書『算盤の書』でウサギの増殖モデルとして紹介しましたが、サンスクリット韻律論として同様の数列はインド数学で何世紀も前から知られていました。
フィボナッチ数列と黄金比はどう関係していますか?
nが大きくなるにつれ、隣り合うフィボナッチ数の比 F(n) / F(n−1) は黄金比 φ = (1 + √5) / 2 ≈ 1.6180339887 に収束します。n = 10 では比は 1.61765、n = 20 では小数第6位まで一致します。この関係は正五角形の対角線と辺の比、ひまわりの種の螺旋配列、木の枝分かれパターンなど、自然界や芸術の中に広く見られます。
ビネの公式でフィボナッチ数を直接求められますか?
はい。ビネの公式 F(n) = (φⁿ − ψⁿ) / √5 を使うと、漸化式を繰り返さずに第n項を直接計算できます。φ = (1 + √5)/2 ≈ 1.61803 が黄金比、ψ = (1 − √5)/2 ≈ −0.61803 がその共役です。|ψ| < 1 なのでψⁿはnが大きくなると0に近づき、F(n)は φⁿ / √5 に最も近い整数と一致します。ただし浮動小数点演算を使うため、大きなnでは丸め誤差が生じます。このツールでは正確な整数値を得るために反復法を採用しています。
フィボナッチ数列は何番目まで計算できますか?
このツールはn = 0〜70 に対応しています。F(70) = 190,392,490,709,135 が、JavaScriptの64ビット倍精度浮動小数点数(IEEE 754 double)で精度を失わずに表現できる最大のフィボナッチ数です。F(71) 以降は安全整数の上限 2⁵³ = 9,007,199,254,740,992 を超えるため、計算結果に誤差が生じる可能性があり、n = 70 を上限に設定しています。