●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

基本情報技術者試験の注目テーマ:再帰(リカーシブ)とは?

再帰(リカーシブ / Recursive)とは、関数や手続きが自分自身を呼び出して処理を行うプログラミング手法です。
繰り返し処理や分割統治型のアルゴリズム(例:フィボナッチ数列や探索処理)で使われ、基本情報技術者試験ではアルゴリズム問題としてよく出題されます。

再帰処理の基本構造

再帰関数は以下の2つで構成されます:

  • 基本ケース(終了条件):処理を終了する条件(これがないと無限ループになる)
  • 再帰呼び出し:自分自身を簡略化した形で再び呼び出す

例:階乗(factorial)の再帰処理

n!(nの階乗)は、n × (n - 1) × (n - 2) × ... × 1 という積の計算です。

function fact(n):
    if n == 0 then
        return 1
    else
        return n × fact(n - 1)
    end if

例:fact(3) の処理の流れは次のようになります:

  • fact(3) → 3 × fact(2)
  • fact(2) → 2 × fact(1)
  • fact(1) → 1 × fact(0)
  • fact(0) → 1(終了条件)
  • 結果:3 × 2 × 1 × 1 = 6

再帰が使われる典型的な処理

  • フィボナッチ数列
  • 階乗(factorial)
  • ハノイの塔
  • 探索(木構造や深さ優先探索)
  • 整列(マージソート、クイックソート)

再帰とループの違い

  • 再帰:関数呼び出しによって繰り返しを実現する
  • ループ:for文やwhile文などで繰り返す
  • 多くの再帰処理はループで書き換えることも可能

基本情報技術者試験での出題ポイント

  • 疑似言語で書かれた再帰処理の正しい追跡
  • 関数の呼び出し回数や返り値を正確に把握できるか
  • 終了条件がどこで成立するかを見極める力

学習のコツ

  • 小さな数値で実行し、呼び出しの流れを書き出してみる
  • 「関数がどの時点で終了し、何を返しているか」を明確にする
  • 一度で全体を理解しようとせず、ステップごとに考える

まとめ

  • 再帰は「自分自身を呼び出す処理」で、分割して解決する問題に有効
  • 終了条件と再帰呼び出しがセットであることが大前提
  • 試験ではトレース力と終了条件の理解が問われる

再帰処理は一見複雑ですが、構造が分かれば非常に強力な手法です。
試験対策としては、呼び出しの「深さ」や「返り値」に注目しながら、手を動かして学習することが効果的です。

 

基本情報試験関連用語集

−−−−−  基本情報技術者試験  −−−−−

基本情報技術者試験の重要分野:アルゴリズムとは?

基本情報技術者試験の基礎知識:フローチャートとは?

基本情報技術者試験の頻出テーマ:ソート(整列)とは?

基本情報技術者試験の頻出テーマ:探索(サーチ)とは?

基本情報技術者試験の注目テーマ:再帰(リカーシブ)とは?

基本情報技術者試験の基本データ構造:スタック/キューとは?

基本情報技術者試験の基本構造:配列(Array)とは?

基本情報技術者試験の理解必須テーマ:ポインタとは?

基本情報技術者試験の基本概念:関数(Function)とは?

基本情報技術者試験の言語分類:手続き型言語(C言語など)とは?

基本情報技術者試験の頻出テーマ:オブジェクト指向(OOP)とは?

基本情報技術者試験の基礎概念:クラス/インスタンスとは?

基本情報技術者試験の重要概念:継承/ポリモーフィズムとは?

基本情報技術者試験の重要知識:データベース正規化とは?

基本情報技術者試験の必須知識:SQL(SELECT, INSERT, UPDATE, DELETE)

基本情報技術者試験の重要テーマ:トランザクションとACID特性とは?

基本情報技術者試験の頻出分野:ネットワーク層(OSI参照モデル)とは?

基本情報技術者試験の重要知識:IPアドレス/サブネットマスク

基本情報技術者試験のネットワーク基礎:DNS(Domain Name System)とは?

基本情報技術者試験のWeb基礎:HTTP/HTTPSとは?

基本情報技術者試験の情報セキュリティ:ファイアウォール/IDS/IPSとは?

基本情報技術者試験の開発基礎:ソフトウェアライフサイクル(SDLC)とは?

基本情報技術者試験のソフトウェア開発手法:ウォーターフォールモデル/アジャイル開発

基本情報技術者試験のプロジェクト管理:ガントチャート/WBSとは?

基本情報技術者試験の管理知識:リスクマネジメントとは?

基本情報技術者試験のセキュリティ基礎:情報セキュリティ基本方針とは?

基本情報技術者試験のセキュリティ管理:ISMS(情報セキュリティマネジメントシステム)とは?

基本情報技術者試験の法律知識:著作権法/不正アクセス禁止法

基本情報技術者試験のセキュリティ脅威:マルウェア/フィッシング/ゼロデイ攻撃

基本情報技術者試験の社会的責任:情報倫理/個人情報保護法