フィボナッチ数列とは?ふぃぼなっちすうれつ
フィボナッチ数列とは、前の2つの項を足して次の項を作る数列。0, 1, 1, 2, 3, 5, 8, 13, 21… と続き、F(n)=F(n−1)+F(n−2)(ただし F(0)=0、F(1)=1)で定義する。等差数列(同じ数ずつ増える)や等比数列(同じ数を掛けて増える)と並ぶ数列の例としてシラバスに載る。科目 B では、再帰(関数が自分自身を呼び出す手順)の題材として出やすく、素直に再帰で書くと同じ計算を何度もくり返し、項の番号が1増えるごとに呼び出し回数がおよそ1.6倍に膨らむ点が問われる。
最終更新:2026-10-10
基本情報を最短で暗記・合格する →背景
定義そのものが「前の2つの結果を使う」形なので、再帰で書くと短く書ける。ところが F(5) を求めるには F(4) と F(3) が要り、F(4) の中でも F(3) を求めるため、F(3) が2回、F(2) が3回と、同じ値を重ねて計算してしまう。一度求めた値を配列に記録して使い回す(メモ化)か、小さい番号から順に足し上げる動的計画法(途中の結果を表に残して再利用する解き方)にすれば、計算の回数は番号に比例する程度に収まる。
具体例
F(5) を再帰で求めると、呼び出しは F(5)→F(4)・F(3)→… と枝分かれし、関数の呼び出しは合計15回になる。一方、配列に F(0)=0、F(1)=1 を入れ、i を2から5まで増やしながら F(i)=F(i−1)+F(i−2) を順に埋めていけば、足し算4回で F(5)=5 が求まる。自然界では、ひまわりの種の並びの渦の数がフィボナッチ数になることが多い例として知られる。
試験での引っ掛け
等比数列との取り違えに注意。フィボナッチ数列は隣どうしの比が約1.618(黄金比)に近づくが、比が一定の等比数列ではない。また「再帰で書けば計算量が少ない」は誤りで、素直な再帰は重複計算で呼び出し回数が急増する。始まりを 1, 1 とする定義もあるので、問題文の F(0)・F(1) の値を必ず確かめる。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。