ホーム用語辞典 > 再帰

再帰とは?

再帰(さいき/recursion)とは、ある処理の中で自分自身(同じ手続き)を呼び出す解き方です。大きな問題を、ひと回り小さい同じ問題に分けて解くのがねらいです。

ポイントは、呼び出すたびに問題が小さくなり、いつかこれ以上分けられない最小のケース(ベースケース)に行き着くこと。ここが再帰の終わりの合図で、これに達すると答えを返し、呼び出しを逆順にたどって全体の答えが組み上がります。

再帰のコールスタック:呼び出しを積み、逆順に戻る fact(1) fact(2) fact(3) 呼び出しで積む → 1 → 2 → 6 戻るとき下ろす 後に呼んだ fact(1) から先に戻る=スタック(LIFO)そのもの
図:関数を呼ぶたびに戻り先が積まれ(コールスタック)、ベースケースに達すると逆順に戻る

ベースケースを書き忘れると止まりません。自分を無限に呼び続け、呼び出し情報が積み上がってスタックオーバーフローで異常終了します。再帰の裏では、戻り先を積んでいくコールスタック(LIFOのスタック)が働いています。

基本情報技術者試験では、再帰関数のトレース、階乗やフィボナッチ、ハノイの塔(最小手数 2ⁿ−1)などが定番です。「小さい同じ問題に分ける・終わりが要る・裏でスタックが動く」を押さえましょう。

🔗 関連:ハノイの塔の可視化(再帰の分解を1手ずつ体感)/ 計算量とO記法用語辞典トップ