【2026年】基本情報技術者試験直前対策 part2
こんにちは、Keiです!
本記事では、基本情報技術者試験直前対策の第二弾として、
最近の傾向的にも出題頻度が高い
「後置記法」「オートマトン」「AIと機械学習」「データ構造」
の4点に絞って解説します。
単なるアルゴリズムの暗記ではなく、なぜその形式でデータを管理するのか、という「設計思想」を理解することで、未知の問題にも対応できる柔軟な頭を作ることを目的にします。
総合的な合格戦略、科目ごとの戦略に関しては、それぞれ以下記事を是非ご覧ください。
1.後置記法(逆ポーランド表記法)
プログラミングやアルゴリズムの問題で避けて通れないのが、数式の表現方法である「後置記法(逆ポーランド表記法)」です。私たちが普段使っている「1 + 2」のような書き方は「中置記法」と呼ばれますが、コンピュータにとっては後置記法の方が圧倒的に計算しやすいという特徴があります。
1. 後置記法とは何か?
後置記法とは、演算子(+、-、×、÷など)を、対象となる数値(オペランド)の「後ろ」に置く書き方です。
中置記法: 1 + 2
後置記法: 1 2 +
この記法の最大のメリットは、「括弧を使わずに計算の優先順位を表現できる」点にあります。
例えば、「(1 + 2) 3」という式を後置記法で書くと「1 2 + 3 ×」となります。計算の順番が左から右へと一方向に進むため、コンピュータは先頭から順に処理するだけで正しい答えに辿り着けます。
2. スタックを使った計算メカニズム
試験で最も問われるのが、データ構造の「スタック」を使って後置記法を計算するプロセスです。以下のルールを機械的に適用する練習をしましょう。
数値を読み込んだら: スタックに PUSH(積む) する。
演算子を読み込んだら: スタックから数値を2つ POP(取り出す) し、計算して、その結果を再び PUSH する。
例えば「1 2 + 3 ×」の場合:
「1」をPUSH
「2」をPUSH
「+」を読み込んだので、1と2をPOPして足し算(1+2=3)。結果の「3」をPUSH
「3」をPUSH
「×」を読み込んだので、3と3をPOPして掛け算(3 × 3=9)。結果の「9」をPUSH
最終的にスタックに残った「9」が答えです。
3. 試験対策:中置記法からの変換
試験では「普通の見慣れた数式を後置記法に直しなさい」という問題も出題されます。コツは、計算の優先順位通りに全ての括弧を補い、演算子をその右括弧の位置に移動させることです。
例:A + B × C
優先順位通りに括弧をつける:(A + (B × C))
演算子をそれぞれの右括弧の外へ出す:(A (B C) × ) +
括弧を取り除く:A B C × +
4. 直前チェックポイント
後置記法では、演算子の「直前にある2つの数値」が計算対象になる。
スタックから取り出す際、引き算や割り算では「先に取り出した方が後ろ(右側)」に来ることに注意(A B - なら A - B)。
複雑な式が出ても、左から順にスタック操作をトレースすれば必ず解ける。
この「一歩ずつスタックを積み上げる感覚」を身につけることが、アルゴリズム分野の得点力を底上げする鍵となります。まずは簡単な式を自分で変換し、スタックの絵を描きながら計算を再現してみましょう。
2.オートマトン(状態遷移)
アルゴリズムの分野において、データの羅列があるルールに従っているかを判定したり、複雑な条件分岐を整理したりする際に使われるモデルが「オートマトン」です。
一見すると難解な用語に聞こえますが、本質は「現在の状態」と「入力」によって「次の状態」が決まる、という非常にシンプルな仕組みです。
1. オートマトンとは何か?
オートマトン(有限オートマトン)は、円(状態)と矢印(遷移)で表される図面「状態遷移図」で理解するのが一番の近道です。
状態(ステート): その時点でのシステムの状態。
入力: 外部から与えられるデータ(0や1、文字など)。
遷移: 入力によって、ある状態から別の状態へ移ること。
例えば、自動販売機でお金を入れ、必要な金額に達したら「購入可能」状態になるプロセスも、立派なオートマトンの一種です。
2. 試験での問われ方:受理と拒絶
基本情報技術者試験では、「ある文字列を入力したとき、最終的に『受理状態(二重円で示されることが多い)』に到達できるか」を問う問題が頻出します。 典型的な出題パターンは以下の通りです。
文字列の判定: 「0110」という入力があったとき、図の矢印を辿って最後にどこにいるかを確認します。
偶数・奇数の判定: 入力の中に「1」が偶数個含まれているときだけ受理状態になる、といった規則性を見抜く問題です。
3. 解法の鉄則「トレース」
オートマトンの問題を確実に解くコツは、頭の中だけで考えず、問題用紙の余白に現在の状態をメモしながら、一歩ずつ「トレース(追跡)」することです。
開始状態(矢印がどこからも来ずに刺さっている状態)を確認する。
入力データの1文字目を見て、対応する矢印を辿る。
移動先の状態を「現在の状態」として、次の文字を読み込む。
全ての文字を読み終わったとき、その場所が「受理状態(二重円)」ならOK。
4. 直前チェックポイント
状態遷移表への変換: 図を「現在の状態」×「入力」の表に書き換える、あるいはその逆の操作ができるようにしておきましょう。
空文字の扱い: たまに何も入力がない状態で遷移するケースがありますが、基本情報では「入力があった時のみ動く」パターンを完璧にするのが先決です。
行き止まりに注意: 対応する矢印がない入力があった場合、それは「受理できない(拒絶)」ことを意味します。
オートマトンは「ルールに従って迷路を進む」ようなパズル要素の強い分野です。一度コツを掴めば、計算ミスが起こりにくい得点源になります。まずは過去問の図を指でなぞり、どのルートを通ればゴールに辿り着けるか、いくつかのパターンを試してみることから始めましょう。
3.AIと機械学習(ファインチューニングを含む)
近年の基本情報技術者試験において、最も出題内容のアップデートが激しいのが「AIと機械学習」の分野です。かつては用語の定義を問う問題が中心でしたが、現在は「AIをどう活用・調整するか」という実戦的な理解が求められています。
1. 機械学習の3つの基本形態
AI(人工知能)が自ら学習する仕組みである「機械学習」は、大きく3つのタイプに分けられます。それぞれの違いを明確にしておきましょう。
教師あり学習: 「正解(ラベル)」付きのデータを与えて学習させる手法です。回帰(数値予想)や分類(画像診断など)に用いられます。
教師なし学習: 正解データを与えず、データ自体の構造やグループを見つけ出す手法です。クラスタリング(顧客のグループ分けなど)が代表例です。
強化学習: コンピュータが試行錯誤を繰り返し、最も高い「報酬」が得られる行動を学習する手法です。囲碁や将棋のAI、自動運転などで活用されます。
2. ディープラーニングとファインチューニング
現在のAIブームの核となっているのが、人間の脳の神経回路を模した「ディープラーニング(深層学習)」です。そして、2026年の試験対策として特に押さえておきたいのが「ファインチューニング」という概念です。
ファインチューニングとは、すでに膨大なデータで学習済みの「大規模モデル」に対して、特定の分野やタスクに関する少量のデータを追加で学習させ、モデルを微調整することを指します。
メリット: ゼロからAIを開発する膨大な計算資源や時間が不要。
活用例: 汎用的な対話AIに、自社の社内規定や専門用語を学習させて、カスタマーサポート専用のAIに仕上げる。
3. ニューラルネットワークの仕組み
試験では、ディープラーニングの基礎となるニューラルネットワークの構造についても問われます。
入力層・中間層(隠れ層)・出力層の3層構造。
各ノード(神経細胞に相当)間で受け渡されるデータに「重み」をかけ、その合計値がある閾値を超えると次の層へ信号を送ります。この時に使われる関数を活性化関数と呼びます。
4. 直前チェックポイント
オーバーフィッティング(過学習): 学習データに適合しすぎて、未知のデータに対して正しく予測できなくなる現象。これを防ぐ手法として「ドロップアウト」や「学習データの増量」があります。
ディープラーニングの手法: 画像認識に強い「CNN(畳み込みニューラルネットワーク)」や、時系列データに強い「RNN(再帰型ニューラルネットワーク)」といった用語の区別。
AI分野は日々進化していますが、試験で問われるのは「その技術が何を解決するためのものか」という本質です。特にファインチューニングのように、既存の資産をどう最適化するかという視点は、戦略コンサルタント的な思考とも親和性が高く、現代のIT活用において必須の知識と言えます。
4.データ構造(スタック、キュー、配列、連結リスト)
アルゴリズムを効率的に動かすためには、データをどのような形で保持しておくかという「データの入れ物(データ構造)」の選択が極めて重要です。基本情報技術者試験では、それぞれの構造が持つメリット・デメリットと、データの出し入れのルールが頻繁に問われます。
1. スタックとキュー(データの出し入れ)
まずは、データの取り出し順序が決まっている2つの代表的な構造を整理しましょう。
スタック(LIFO: Last-In First-Out): 本を積み上げたような構造です。最後にいれたデータ(Last-In)を最初に取り出す(First-Out)ため、「後入れ先出し」と呼ばれます。第1章で触れた「後置記法」の計算や、関数の再帰呼び出しの管理に使われます。
キュー(FIFO: First-In First-Out): レジの待ち行列のような構造です。最初に入れたデータ(First-In)を最初に取り出す(First-Out)ため、「先入れ先出し」と呼ばれます。プリンタの印刷待ちジョブや、OSのタスクスケジューリングなどで利用されます。
2. 配列と連結リスト(格納の仕組み)
次に、メモリ上でのデータの持ち方による違いを比較します。
配列(Array): メモリ上の連続した領域にデータを並べる構造です。「3番目のデータ」のように添字(インデックス)を使って、どの位置のデータにも瞬時にアクセスできるのが最大の強みです。ただし、途中にデータを挿入したり、削除したりする場合は、それ以降のデータをすべてずらす必要があるため、処理に時間がかかります。
連結リスト(Linked List): データ本体と「次のデータがどこにあるか」を示すポインタをセットにして保持する構造です。メモリ上でバラバラな場所に配置されていても、数珠つなぎのように辿ることができます。データの挿入や削除は、ポインタの書き換えだけで済むため非常に高速です。反面、特定の要素にアクセスするには先頭から順番に辿らなければならず、検索には時間がかかります。
3. 試験攻略の視点:計算量のトレードオフ
試験では、「どのような処理を行う場合に、どのデータ構造が最適か」を判断する能力が求められます。
頻繁に検索やランダムアクセスを行う場合は「配列」。
データの追加や削除が激しい場合は「連結リスト」。
一時的なデータの退避や順序管理には「スタック」や「キュー」。
4. 直前チェックポイント
スタックの操作は PUSH(入れる)と POP(出す)。
キューの操作は ENQUEUE(入れる)と DEQUEUE(出す)。
連結リストの要素削除は、「前の要素のポインタを、削除したい要素の次の要素に向ける」だけで完了します。
データ構造は、プログラムの性能を左右する「設計の基礎」です。それぞれの構造が「何が得意で、何が苦手か」をセットで覚えることで、アルゴリズムの応用問題にも動じない基礎力が身につきます。手元のノートにそれぞれのデータの動きを図解しながら、イメージを定着させておきましょう。
