基本情報技術者 学習ページ|科目B・基礎理論

情報とAIの表し方

文字、機械学習、状態遷移は、情報を数値や表に置き換えて処理するという共通点があります。表された値の意味を確認しながら、判定や遷移をプログラムで追います。

文字を数値で表す

コンピュータでは、文字を数値に対応付けた文字コードを使います。ASCIIでは英数字や記号などに数値が割り当てられ、Unicodeではより広い範囲の文字を共通の体系で扱います。

プログラムでは、与えられたコード値が特定の範囲に入るかを比較して文字の種類を判定することがあります。文字そのものと、その文字に対応する数値を区別することが大切です。

文字コードでは文字と数値の対応を利用して判定できる。

符号化を分けて考える

符号化文字集合は、扱う文字に番号(コードポイント)を対応させたものです。一方、文字符号化方式は、その番号を実際のバイト列としてどのように表すかを決めます。

同じ文字を扱っていても、方式によって格納されるバイト列や長さが異なる場合があります。問題では、文字の種類、コード値、保存時の表現のどれを尋ねているかを切り分けます。

文字の番号付けと保存時の符号化を区別する。

学習と評価を分ける

教師あり学習では、入力と正解の組を使ってモデルを学習させます。学習に使ったデータだけで性能を見ると、未知のデータへの性能を正しく判断しにくくなります。

そのため、学習用、検証用、テスト用などにデータを分けて扱います。モデルを作る段階と、未知データへの性能を評価する段階を分けるという考え方を押さえます。

学習に使うデータと評価に使うデータを分けて考える。

分類結果を評価する

二値分類では、実際の正解と予測結果の組合せを、真陽性、偽陽性、真陰性、偽陰性に分けて数えます。適合率は、陽性と予測したもののうち実際に陽性だった割合です。

再現率は、実際に陽性だったもののうち陽性と予測できた割合です。適合率と再現率では分母が異なるので、式を名前だけで覚えず、何を基準にした割合かを確認します。

適合率は予測陽性、再現率は実際陽性を分母にする。

状態遷移を追う

オートマトンでは、現在の状態と入力によって次の状態が決まります。状態遷移表を二次元配列として表せば、現在の状態を行、入力の種類を列として次の状態を取得できます。

入力列を先頭から一つずつ処理し、そのたびに現在状態を更新します。次の判定では更新後の状態を使うので、状態の履歴を順に書くと追いやすくなります。

状態遷移は現在状態と入力から次状態を一つずつ求める。

本番の形で解いてみる

科目Bの形: プログラム(擬似言語)を読んで解答群から選ぶ(このページのために作った問題)

次のプログラム中の【a】に入れる正しい条件式を、解答群の中から選べ。ASCIIでは文字'0'から'9'に、10進数で48から57までの連続したコード値が割り当てられている。関数isDigitは、codeが数字を表すコード値ならtrueを返す。

 1○論理型: isDigit(整数型: code)
 2  if (a)
 3    return true
 4  else
 5    return false
 6  endif
  1. a: code ≧ 48 and code ≦ 57
  2. a: code > 48 and code < 57
  3. a: code ≧ 48 or code ≦ 57
  4. a: code ≦ 48 and code ≧ 57
  5. a: code ≧ 47 and code ≦ 56
答えと解説を見る

正解: a: code ≧ 48 and code ≦ 57

数字のコード値には48と57も含まれるので、両端を含む範囲判定が必要です。下限以上かつ上限以下なのでandで結びます。

まちがえやすい点: 48と57を除外する不等号にすると、'0'と'9'を数字と判定できない。

科目Bの形: プログラム(擬似言語)を読んで解答群から選ぶ(このページのために作った問題)

次のプログラム中の【a】、【b】に入れる正しい答えの組合せを、解答群の中から選べ。tpは真陽性の件数、fpは偽陽性の件数であり、tpとfpの合計は0より大きい。関数precisionPercentは適合率を百分率の整数値で返す。

 1○整数型: precisionPercent(整数型: tp, 整数型: fp)
 2  整数型: numerator, denominator
 3  a
 4  b
 5  return numerator ÷ denominator の商
  1. a: numerator ← tp × 100 b: denominator ← tp + fp
  2. a: numerator ← tp × 100 b: denominator ← fp
  3. a: numerator ← fp × 100 b: denominator ← tp + fp
  4. a: numerator ← (tp + fp) × 100 b: denominator ← tp
  5. a: numerator ← tp b: denominator ← (tp + fp) × 100
答えと解説を見る

正解: a: numerator ← tp × 100 b: denominator ← tp + fp

適合率は、陽性と予測した件数tp+fpのうち、実際に陽性だったtpの割合です。百分率にするため、分子のtpを100倍してから整数の商を求めます。

まちがえやすい点: fpだけを分母にするのではなく、予測陽性全体であるtp+fpを分母にする。

科目Bの形: プログラム(擬似言語)を読んで解答群から選ぶ(このページのために作った問題)

次の関数finalStateを finalState({1, 1, 2, 1, 2}) として呼び出したとき、戻り値として正しいものを解答群の中から選べ。transitionの行番号は現在の状態1~3、列番号は入力1又は2を表し、要素の値が次の状態である。例えば、transition[2, 1]は2行1列目の要素で、値は3である。

 1○整数型: finalState(整数型の配列: input)
 2  整数型の二次元配列: transition ← {{2, 1}, {3, 1}, {3, 2}}
 3  整数型: state ← 1
 4  整数型: i
 5  for (i を 1 から inputの要素数 まで 1 ずつ増やす)
 6    state ← transition[state, input[i]]
 7  endfor
 8  return state
  1. 1
  2. 2
  3. 3
  4. 4
  5. 0
答えと解説を見る

正解: 2

状態1から入力1で状態2、次の入力1で状態3へ進みます。その後は入力2で状態2、入力1で状態3、最後の入力2で状態2となります。

まちがえやすい点: 各入力は初期状態から判定するのではなく、一つ前に更新された状態から遷移する。

基本情報の学習ページ

ほかの学習ページの一覧と、2択の用語カード(750語)は、基本情報技術者のページにあります。

基本情報技術者のページへ →

このページの内容は、IPA「基本情報技術者試験 シラバス Ver.9.2」(2026年1月公表)と試験要綱Ver.5.6の範囲にもとづきます(2026年10月確認)。IPAは2027年度春ごろから新しい試験制度に移る予定です。