アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20170611 実施分 問7
次の関数 f(n, k) がある。f(4, 2) の値は幾らか。
f(n, k) = 1 (k = 0),
f(n−1, k−1) + f(n−1, k) (0<k<n),
1 (k = n).
- ア 3
- イ 4
- ウ 5
- エ 6
出典:基本情報技術者試験 科目A免除 修了試験 20170611 実施分 問7
答えと解説を見る
正解:エ
覚える知識
再帰関数のトレース計算
再帰関数は定義式を端の条件まで順に展開して値を求める。
この問題で必要なこと
f(n,k)=f(n-1,k-1)+f(n-1,k) を展開する。f(4,2)=f(3,1)+f(3,2)=3+3=6 となる(パスカルの三角形の組合せ数に相当)。
ひっかけ
端の条件(k=0やk=n)の値1を取り違えたり、展開の足し算を誤ったりする。
この知識の出題:本試験系 8 回・免除試験 11 回(公開問題での観測値)