IPA過去問ドリル

平成24年度 秋期 応用情報技術者試験 午前 問7

テクノロジ/アルゴリズム

次の関数 g(x) の定義に従って g(4) を再帰的に求めるとき,必要な加算の回数は幾らか。 g(x) = if x<2 then 1 else g(x−1)+g(x−2)

出典:平成24年度 秋期 応用情報技術者試験 午前 問7

正解:イ

解説

g(x)=g(x−1)+g(x−2)(x≥2)という再帰定義に基づき,加算回数をA(x)とするとA(x)=A(x−1)+A(x−2)+1(A(0)=A(1)=0)となります。これを計算するとA(2)=1,A(3)=2,A(4)=A(3)+A(2)+1=2+1+1=4となり,g(4)を求めるのに必要な加算は4回です。

選択肢ごとの解説

  • 誤り。A(3)までの加算回数(2回)や途中経過を最終回数と取り違えた場合の値です。
  • 正しい。A(4)=A(3)+A(2)+1=2+1+1=4回の加算が必要です。
  • 誤り。加算回数を1回多く数えた場合などに生じる値で,正しい計算過程とは一致しません。
  • 誤り。加算に加えて減算の回数まで合算するなど,数え方を誤った場合の値です。
応用情報技術者の過去問を演習モードで解く