基本情報技術者
テクノロジ系
再帰アルゴリズムの説明として適切なものはどれか。
1.
同じ処理を一定回数繰り返すアルゴリズム
2.
関数が自分自身を呼び出すアルゴリズム
✓ 正解
3.
データを再利用するアルゴリズム
4.
複数の関数が順番に呼び出されるアルゴリズム
📝 解説
再帰アルゴリズム(リカーシブアルゴリズム)は関数が処理の中で自分自身を呼び出すことで問題を解く手法です。鏡の前に鏡を置くと「鏡の中に鏡が映り、その中にまた鏡が…」と無限に続く入れ子構造がありますね。再帰もそのような自己参照構造を持ちます。重要なのは必ず「終了条件(基底ケース)」を設けることで、これがないと無限に自分自身を呼び続けてスタックオーバーフローが発生します。例えば階乗計算では「factorial(n) = n x factorial(n-1)」と自分を呼び、「factorial(0) = 1」が終了条件です。再帰が特に威力を発揮するのは「木構造の全探索」「ハノイの塔」「フィボナッチ数列」「クイックソート・マージソート」など、問題を同じ形の小さな部分問題に自然に分解できる場合です。ただし関数呼び出しのたびにスタックにフレームが積まれるため、深い再帰ではスタック使用量が大きくなる点に注意が必要です。誤答の「同じ処理を一定回数繰り返す」はfor/whileループ、「データを再利用する」「複数の関数が順番に呼ばれる」は再帰とは異なります。「再帰=自分自身を呼ぶ・終了条件が必須」と覚えましょう!