スポンサーリンク

【応用情報技術者試験】再帰を5分で理解!

「再帰って何?」
応用情報技術者試験でもアルゴリズム分野で超頻出ですが、

  • 自分を呼ぶ?
  • 無限ループにならない?
  • スタックと何が関係ある?

で混乱する人がかなり多いテーマです。

この記事では、

  • 再帰とは?
  • なぜ使う?
  • スタックとの関係
  • 試験での頻出ポイント

を5分で理解できるように解説します!


まず結論

再帰とは?

「自分自身を呼び出す処理」

です!


超簡単にいうと

関数の中で:

同じ関数を呼ぶ


イメージ

A()

A()

A()


階段で理解しよう

かなり分かりやすい👇


下へ降りる

5段

4段

3段


最下段到達後

戻る


再帰も同じ!


基本構造

超重要!


再帰には必須

終了条件


なぜ?

ないと:

無限再帰

になる!


1

2

3

永遠に続く。


代表例:階乗

超頻出!


階乗とは?

5! = 5×4×3×2×1


再帰で表す

n! = n × (n-1)!


つまり

5!

5×4!

5×4×3!


最後

1! = 1

で終了。


これが終了条件!


スタックとの関係

超頻出!


再帰呼出し時

情報を:

スタックへ保存

する。


スタックとは?

後入れ先出し(LIFO)


イメージ

A
B
C

積み重ね。


取り出し

C → B → A


再帰も同じ!


再帰の流れ

A()

B()

C()


終了後

C終了

B終了

A終了


再帰のメリット

  • コード簡潔
  • 木構造と相性良い

デメリット

  • スタック消費
  • 遅くなる場合あり

スタックオーバーフロー

超頻出!


意味

スタック容量超過


原因

  • 無限再帰
  • 深すぎる再帰

再帰が使われる例

用途内容
木探索フォルダ構造
クイックソート分割統治
階乗計算数学処理

反復処理との違い

比較再帰反復
方法自分呼出しループ
使用スタックカウンタ
可読性高いこと多い効率良いこと多い

応用情報で超頻出

かなり狙われる👇

  • 再帰
  • 終了条件
  • スタック
  • LIFO
  • スタックオーバーフロー

よくあるひっかけ

「再帰は必ず高速」

→ 違う!

スタック利用で:

遅くなる場合もある


1分で復習!

再帰

自分自身呼出し


必須

終了条件


再帰管理

スタック


問題

スタックオーバーフロー


練習問題

問題

再帰処理の説明として最も適切なものはどれか。

複数CPUで同時実行する処理

自分自身を呼び出す処理

記憶装置を圧縮する処理

通信経路を制御する処理


解答

正解:イ

解説

再帰処理は、関数や手続きが自分自身を呼び出す処理方式です。


まとめ

再帰とは

「自分自身を呼ぶ処理」


超重要

  • 終了条件
  • スタック
  • LIFO
  • スタックオーバーフロー

まずは、

「再帰=自分呼出し」

「戻る時は逆順」

このイメージを持つとかなり理解しやすくなります!


知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…

まずは無料でキャリア相談

コメント