戦国IT - 情報処理技術者試験の過去問対策サイト
お知らせお問い合わせ料金プラン

応用情報技術者 2012年 秋期 午前207


問題文

次の関数の定義に従ってを再帰的に求めるとき、必要な加算の回数は幾らか。  

選択肢

3
4(正解)
5
7

次の関数の定義に従ってを再帰的に求めるとき、必要な加算の回数は幾らか。【午前2 解説】

要点まとめ

  • 結論:を再帰的に計算する際の加算回数は4回です。
  • 根拠:はフィボナッチ数列の定義に似ており、再帰呼び出しごとに加算が発生します。
  • 差がつくポイント:再帰呼び出しの展開を正確に追い、加算回数を数えることが重要です。

正解の理由

関数のとき1を返し、それ以外はと定義されています。
を計算する際、を計算し、それぞれも再帰的に計算されます。
加算はの計算時に発生し、合計4回となるため、が正解です。

よくある誤解

再帰呼び出しの回数と加算回数を混同し、加算回数を多く見積もる誤りが多いです。
また、ベースケースの戻り値に加算が含まれないことを見落としがちです。

解法ステップ

  1. を計算するためにを呼び出す。
  2. を呼び出し、はベースケースで1を返す。
  3. 各非ベースケースで加算が1回発生することを確認する。
  4. 加算回数をの計算時にそれぞれ1回ずつ数え、合計4回とする。

選択肢別の誤答解説

  • ア: 3回は加算回数の数え漏れがあるため誤りです。
  • イ: 4回は正しい加算回数です。
  • ウ: 5回は加算回数を過大評価しています。
  • エ: 7回は再帰呼び出しの総数と混同した誤りです。

補足コラム

この問題はフィボナッチ数列の再帰計算における計算量の理解に役立ちます。
再帰呼び出しの重複を避けるメモ化や動的計画法を使うと計算効率が大幅に向上します。

FAQ

Q: なぜベースケースでは加算が発生しないのですか?
A: ベースケースは単に値を返すだけで、加算処理を含まないためです。
Q: 再帰呼び出しの回数と加算回数は同じですか?
A: いいえ。加算は非ベースケースの呼び出しごとに1回発生しますが、呼び出し回数はそれより多くなります。

関連キーワード: 再帰、フィボナッチ数列、加算回数、ベースケース、メモ化
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてプライバシーポリシー利用規約特商法表記開発者について