平成28年度 春期 基本情報技術者試験 午前 問7
テクノロジ/アルゴリズムn の階乗を再帰的に計算する関数 F(n) の定義において,aに入れるべき式はどれか。ここで,n は非負の整数とする。 n>0のとき,F(n)=a n=0のとき,F(n)=1
出典:平成28年度 春期 基本情報技術者試験 午前 問7
- アn+F(n-1)
- イn-1+F(n)
- ウn×F(n-1)
- エ(n-1)×F(n)
正解:ウ
解説
階乗の定義n!=n×(n-1)!に基づき,F(n)はn>0のときn×F(n-1)として定義されます。F(0)=1を基底(終了条件)として,この漸化式を繰り返し適用することでn!が正しく計算されます。
選択肢ごとの解説
- ア誤り。加算では階乗の値ではなく,等差的に増える値になり,n!の定義と一致しません。
- イ誤り。F(n)自身を定義の中で使っており,再帰的定義として循環してしまいます。
- ウ正しい。n!=n×(n-1)!という階乗の定義そのものです。
- エ誤り。イと同様にF(n)自身を使っており,再帰的定義として成立しません。