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

基本情報技術者 2019年 秋期 午前(科目A)11


問題文

自然数に対して、次のとおり再帰的に定義される関数を考える。の値はどれか。    

選択肢

6
9
15(正解)
25

自然数の再帰関数 f(n) の値を求める【午前2 解説】

要点まとめ

  • 結論:再帰定義に従うと f(5)=5+4+3+2+1=15、したがって選択肢の正解はです。計算は再帰を逆展開して行います。
  • 根拠:定義は f(n)=1 (n≤1)、それ以外は f(n)=n+f(n-1) であり、n≥1 に対して と表せます。
  • 差がつくポイント:基底条件(n≤1)の扱いを誤らないこと、再帰を展開して項を明示すること、公式 の適用範囲を確認すること。

正解の理由

正解は です。
定義に従い f(5) を再帰展開すると、 , , …, (基底条件)。よって 。一般には に対して が成り立ちます。

よくある誤解

  • 基底条件を「n=0 のとき 0 を返す」と誤解してしまう。問題文では n≤1 のとき 1 を返す点に注意。
  • 再帰展開を途中で止めて合計項を漏らす(例えば 5+4 までで止めるなど)。必ず最後の基底まで展開する。
  • 和の公式を使う際に適用範囲を確認せず n=0 を含めるなどして誤用すること。

解法ステップ

  1. 定義を確認:f(n)=1(n≤1)、それ以外は f(n)=n+f(n−1)。
  2. n=5 に対して再帰を逆展開する:f(5)=5+f(4), f(4)=4+f(3), …, f(1)=1。
  3. 各項を足す:5+4+3+2+1=15。
  4. 必要なら公式を適用:

選択肢別の誤答解説

  • ア: 6 — これは 1+2+3 の合計に相当し、n=3 の場合の値。再帰を途中で止めた可能性。
  • イ: 9 — たとえば 5+4 を答えとして終了させた誤り、または項を取り違えた計算ミス。
  • ウ: 15 — 正解。再帰を正しく展開すると得られる合計値。
  • エ: 25 — 5 の二乗を取る誤解( と誤認)や、誤った公式適用によるもの。問題定義からは導けない。

補足コラム

  • 一般公式の導出(簡単な帰納法): 基底: のとき は成り立つ。
    帰納: と仮定すると 。したがって全ての
  • 実行例(Python)
def f(n):
    if n <= 1:
        return 1
    return n + f(n-1)

print(f(5))  # 15
  • 注意:問題では基底が「n≤1 のとき 1」であるため、 となり、 の場合は公式 と一致しません。公式は を前提とする点に留意してください。

FAQ

Q1: 自然数に 0 を含める場合はどうなる?
A1: 問題定義通りなら です。公式 のときに使います。 では公式は 0 になり定義と異なります。
Q2: 再帰より公式を直接使ってもよいですか?
A2: はい。再帰を展開して和の形に気づければ、)を利用して迅速に計算できます。
Q3: 基底条件が 0 のときと 1 のときで結果はどう違いますか?
A3: 基底を 0 にして とした場合、 は 0 から n までの和になり結果が変わります。問題文の基底条件を必ず確認してください。

関連キーワード: 再帰関数、和の公式、帰納法、基底条件、再帰展開、数列和、アルゴリズム基礎
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

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

クイズ画面へ遷移する

すぐに利用可能!

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

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