フィボナッチ数列 計算ツール|n項・黄金比
フィボナッチ数列のn項目を計算。隣接項の比から黄金比φへの収束も可視化。
フィボナッチ 計算機
フィボナッチ数列とは
F(0)=0, F(1)=1, F(n) = F(n-1) + F(n-2)
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233...
性質
- 隣接項の比は黄金比 φ = (1+√5)/2 ≈ 1.618 に収束
- F(n) = (φ^n − (−φ)^(−n)) / √5(ビネ式)
- 自然界に多数(ひまわりの種・松ぼっくり・ナウチラスの貝殻)
応用
- 株価のテクニカル分析(フィボナッチリトレースメント)
- アルゴリズムの教科書例(再帰・DP)
- 建築・芸術(黄金比の美)
- ピアノの白鍵黒鍵の配置
計算式と前提
F(0) = 0、F(1) = 1、F(n) = F(n−1) + F(n−2)
比 = F(n) ÷ F(n−1) / 差 = 比 − φ(φ = (1+√5)/2)
既定値の n = 10 では、F(10) = 55、前項 F(9) = 34、比は 55 ÷ 34 = 1.6176470588 となり、黄金比 φ = 1.6180339887… との差は −3.869e-4 と表示されます。この計算機は F(0) = 0 を出発点として数え、n 番目として F(n) を返します。n = 1 のときは前項が 0 になり比が定義できないため、比と差は「—」と表示されます。数列の値は多倍長整数で計算しているので、n = 80 でも桁落ちなく正確です。
早見表
n と F(n)、黄金比への近づき方
| n | F(n) | 前項 F(n−1) | F(n)/F(n−1) | φ との差 |
|---|---|---|---|---|
| 1 | 1 | 0 | — | — |
| 5 | 5 | 3 | 1.6666666667 | 4.863e-2 |
| 10(既定値) | 55 | 34 | 1.6176470588 | -3.869e-4 |
| 15 | 610 | 377 | 1.6180371353 | 3.147e-6 |
| 20 | 6765 | 4181 | 1.6180339632 | -2.558e-8 |
| 30 | 832040 | 514229 | 1.6180339887 | -1.691e-12 |
| 40 | 102334155 | 63245986 | 1.6180339887 | -2.220e-16 |
| 80 | 23416728348467685 | 14472334024676221 | 1.6180339887 | 0.000e+0 |
差の符号が交互に入れ替わっている点に注目してください。比は φ の上と下を行き来しながら、1項進むごとに誤差がおよそ 1/φ²(約0.382倍)に縮みます。n = 40 で差は倍精度計算の限界(約1e-16)に達し、それ以降は 0 と表示されます。
覚えておくと使える性質
| 性質 | 式 | 確認例 |
|---|---|---|
| 初項からの和 | F(0)+…+F(n) = F(n+2) − 1 | n=5:0+1+1+2+3+5=12、F(7)−1=13−1=12 |
| 平方の和 | F(0)²+…+F(n)² = F(n)·F(n+1) | n=5:0+1+1+4+9+25=40、5×8=40 |
| カッシーニの恒等式 | F(n−1)·F(n+1) − F(n)² = (−1)ⁿ | n=5:3×8−25=−1 |
| 最大公約数 | gcd(F(m), F(n)) = F(gcd(m, n)) | gcd(F(6), F(9)) = gcd(8, 34) = 2 = F(3) |
| 偶数になる条件 | F(n) が偶数 ⟺ n が3の倍数 | F(3)=2、F(6)=8、F(9)=34 |
| 一般項(ビネの公式) | F(n) = (φⁿ − (−1/φ)ⁿ) / √5 | n=10:(122.99…−0.0081…)/2.236…=55 |
詳しい解説
隣接する2項の比が 1.618… に近づく理由は、漸化式そのものから導けます。両辺を F(n−1) で割ると、比は「1 + 1つ前の比の逆数」という形になります。この操作を繰り返したときに動かなくなる値 x は x = 1 + 1/x を満たし、整理すると x² = x + 1、正の解が (1+√5)/2 です。早見表で差の符号が交互に入れ替わっているのは、この繰り返しが目標値をまたぎながら近づくためで、1項進むごとに誤差はおよそ 0.382 倍に縮みます。n = 10 で小数第3位、n = 20 で小数第7位、n = 30 で小数第11位まで一致するという速さは、この指数的な縮み方から来ています。
実際に混乱が起きやすいのは、何番目から数えるかです。この計算機は F(0) = 0 を出発点に置き、n に 10 を入れると 55 を返します。0 を第1項と数える流儀では10番目が 34 になり、同じ「10項目」という言葉で違う数を指すことになります。表示されている最初の20項が 0 から始まっていることが、この計算機の数え方の目印になります。
数値の扱いにも注意点があります。この計算機は数列そのものを多倍長整数で計算しているため、n = 80 の 23416728348467685 という17桁の値も正確です。一方、比を求めるときだけは小数に変換しており、倍精度の小数は 2 の53乗(約9,007兆)を超える整数を厳密には表せません。n = 79 以降は F(n) がこの範囲を超えますが、比は相対的な誤差が 1e-16 程度に収まるため、表示している小数10桁には影響しません。
応用の場面では、扱いの重みが分野ごとに違います。相場のテクニカル分析で使われる 61.8%・38.2%・23.6% という水準は、1/φ、1/φ²、1/φ³ を百分率にしたものです。ただし、これらの水準で価格が反転する統計的な裏づけがあるわけではなく、多くの参加者が同じ線を意識することによる面が大きいと理解しておくのが安全です。自然界の例も同様で、ひまわりの種の配列で観察されるのは、隣り合う2つのフィボナッチ数(34と55、55と89など)が渦の本数として現れる現象であり、黄金比そのものを直接測っているわけではありません。
この計算機で確実に信頼できるのは、F(n) と F(n−1) の整数値、そして小数10桁までの比です。差の欄は倍精度計算の限界に達したところで 0 と表示されるようになりますが、これは誤差が完全に消えたという意味ではなく、この精度では区別できなくなったという意味です。
よくある間違い・注意点
- 「n項目」の数え方を確認しない ― この計算機は F(0) = 0 を出発点とし、n = 10 で 55 を返します。0 を第1項と数える流儀では10番目が 34 になります。答えが合わないときは、まず数え方を照合してください。
- 漸化式をそのまま再帰で実装する ― 呼び出し回数が数列と同じ速さで増えるため、n = 40 あたりで実用的な時間に収まらなくなります。ループか、計算済みの値を保存する書き方にしてください。
- 整数型の上限を超える ― 64ビット整数では F(92) までしか収まらず、F(93) で桁があふれます。表計算ソフトの標準的な数値型でも、大きな n では下位の桁が失われます。
- 比の表示を無限に高精度だと思う ― 差の欄が 0 になるのは誤差が消えたからではなく、倍精度で区別できなくなったからです。n = 40 前後がその境目です。
- 自然界の例を黄金比そのものと同一視する ― 観察されるのは渦の本数がフィボナッチ数になる現象で、黄金比を直接測っているわけではありません。建築や音楽の例には後付けの解釈も含まれます。
関連する規格・分野
- IEEE 754(倍精度浮動小数点数) ― この計算機の比と差の計算はこの形式で行われます。整数を厳密に表せるのは 2 の53乗までで、有効数字はおよそ10進15〜17桁です。
- 64ビット符号付き整数 ― 上限は 2 の63乗 − 1 です。フィボナッチ数では F(92) までが収まり、F(93) であふれます。
- 高等学校 数学B「数列」 ― 漸化式と一般項を扱う単元で、フィボナッチ数列は隣接3項間漸化式の代表例として登場します。
- 情報処理技術者試験のアルゴリズム分野 ― 再帰、動的計画法、計算量の比較を説明する題材として繰り返し出題されています。
- オンライン整数列大辞典(OEIS)A000045 ― フィボナッチ数列の標準的な参照番号です。関連する恒等式や参考文献がまとめられています。
- 黄金比 φ ― x² = x + 1 の正の解で、値は 1.6180339887498948… です。連分数展開がすべて1になるため、有理数で近似しにくい数として知られています。
参考資料
- オンライン整数列大辞典 A000045 ― フィボナッチ数列の項、恒等式、参考文献の一覧。
- 米国立標準技術研究所 Digital Library of Mathematical Functions ― 特殊関数と数列に関する標準的な参照。
- 文部科学省 高等学校学習指導要領 ― 数学Bの数列に関する記載。
- 情報処理推進機構 情報処理技術者試験 ― アルゴリズムと計算量の出題範囲。
- 日本数学会 ― 数学分野の学術情報。
- 日本応用数理学会 ― 数値計算と誤差評価に関する学術情報。
- IEEE Standards Association ― 浮動小数点演算の規格 IEEE 754。
- 国立情報学研究所 ― 論文検索を通じた原典の確認に。
- 国立国会図書館 ― 数学史に関する文献の所在確認。
よくある質問(FAQ)
フィボナッチ数列とは何ですか?
直前の2つの数を足して次の数を作る数列です。0、1 から始めると 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55… と続きます。式で書くと F(0)=0、F(1)=1、F(n)=F(n−1)+F(n−2) です。単純な規則にもかかわらず、隣接する項の比が黄金比に収束するなど、多くの性質を持ちます。
「10項目」は 55 ですか、34 ですか?
数え方によります。この計算機は F(0)=0 を出発点として n 番目に F(n) を返すため、n=10 では 55 です。0 を第1項と数える流儀では10番目が 34 になります。どちらが誤りというわけではないので、教材の定義に合わせて読み替えてください。
なぜ黄金比に収束するのですか?
漸化式の両辺を F(n−1) で割ると、比が「1 + 1つ前の比の逆数」という形になります。この繰り返しで動かなくなる値は x = 1 + 1/x を満たし、整理すると x² = x + 1、その正の解が (1+√5)/2 = 1.6180339887… です。比は目標値の上下をまたぎながら近づくため、この計算機の差の欄では符号が交互に変わります。
n = 80 まで正確に計算できますか?
数列の値は多倍長整数で計算しているため、F(80) = 23416728348467685 まで正確です。比だけは小数に変換して求めているため、倍精度の限界(有効数字およそ10進16桁)を受けますが、表示している小数10桁には影響しません。
差の欄が 0 になるのはなぜですか?
n が40前後になると、比と黄金比の差が倍精度計算の分解能(およそ1e-16)を下回るためです。誤差が完全に消えたわけではなく、この精度では区別できなくなったという意味です。それより先の縮み方を見たい場合は、多倍長の小数を扱える環境が必要です。
プログラムで書くときの注意点は?
2つあります。1つは計算量で、漸化式をそのまま再帰関数にすると呼び出し回数が数列と同じ速さで増え、n=40 あたりで実行が現実的でなくなります。ループか、計算済みの値を保存する方法にしてください。もう1つは桁で、64ビット整数では F(92) までしか収まらず、F(93) であふれます。大きな n を扱うなら多倍長整数を使ってください。
相場分析で使う 61.8% などは何ですか?
1/φ = 0.618、1/φ² = 0.382、1/φ³ = 0.236 を百分率にしたものです。値そのものは黄金比から機械的に導けますが、その水準で価格が反転する統計的な裏づけがあるわけではありません。多くの参加者が同じ線を意識することによる影響が大きいと理解して使ってください。
自然界に本当に現れますか?
ひまわりの種や松かさで観察される渦の本数が、隣り合う2つのフィボナッチ数(34と55、55と89など)になることは繰り返し報告されています。これは葉や種が一定の角度ずつずれて並ぶ仕組みから説明されます。一方、貝殻の渦や建築物の比率を黄金比と結びつける説明には、後から当てはめた解釈も含まれるため、区別して扱うのが安全です。