仮の宿 学習室

基本情報技術者 FUNDAMENTAL IT ENGINEER

基礎理論

講義 5 本・確認問題 45 問 | 本試験では「科目A テクノロジ」(41問)の一部 | 最終更新 2026-09-24

この章で学ぶこと
目次
  1. 2進数・補数・シフト演算
  2. 小数の表現と誤差
  3. 論理演算・集合・BNF
  4. 確率・統計と待ち行列
  5. 情報理論と通信・制御
  6. 確認問題(45問)
  7. 演習ツール

1. 2進数・補数・シフト演算

コンピュータが数をどう保持しているのかを、基数変換・負数の表し方・シフト演算の3点で押さえます。

コンピュータは電圧の高低しか区別できないので、数はすべて0と1の並び(2進数)で持ちます。人間が読むときは桁数が長くなりすぎるため、2進数4桁をちょうど1桁にまとめられる16進数(0〜9とA〜F)や、3桁を1桁にまとめられる8進数がよく使われます。10進数から2進数への変換は「2で割って余りを下から並べる」、2進数から10進数への変換は「各桁の重み(…8, 4, 2, 1)を足す」が基本です。小数部は逆に「2を掛けて整数部を上から並べる」で求めます。

負の数は、符号ビットを別に持つ方法もありますが、実際の計算機はほとんど2の補数を使います。2の補数は「全ビットを反転して1を加える」で作れ、加算回路だけで減算もできるという大きな利点があります。ビット数がnなら表せる範囲は −2^(n−1) 〜 2^(n−1)−1 で、負のほうが1つ多いのが特徴です。全ビットを反転しただけのものは1の補数で、0の表現が+0と−0の2通りできてしまうため現在はあまり使われません。

シフト演算は、ビット列を左右にずらす操作です。左に1ビットずらすと値は2倍、右に1ビットずらすと1/2になります。ここで大事なのが論理シフトと算術シフトの違いで、論理シフトは空いた上位ビットに必ず0を入れます(符号なし整数向け)。算術シフトは右シフトのとき符号ビットと同じ値を上位に入れる(符号拡張)ため、負の数を右にずらしても負のままです。2の補数の算術右シフトは「マイナス方向への切捨て(床関数)」になる点に注意してください。

10進数・2進数・8進数・16進数の対応(0〜15)
10進2進(4桁)8進16進
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F
10進数を2進数・16進数に変換する手順
10進数 105 を 2 で割り続ける(余りを下から読む)   105 ÷ 2 = 52 ... 1   ← 最下位ビット   52 ÷ 2 = 26 ... 0   26 ÷ 2 = 13 ... 0   13 ÷ 2 =  6 ... 1    6 ÷ 2 =  3 ... 0    3 ÷ 2 =  1 ... 1    1 ÷ 2 =  0 ... 1   ← 最上位ビット   下から並べて  1101001(2)  = 105(10)  4桁ずつ区切って 0110 1001 → 69(16)

用語

基数
位取り記数法で1桁が何種類の値を取れるかを示す数。10進数なら10、2進数なら2、16進数なら16。各桁の重みは基数のべき乗になり、右からn桁目の重みは基数の(n−1)乗で表される。
2の補数
nビットで負数を表す方式。ある値の全ビットを反転して1を加えたものが、その値の符号を反転した表現になる。減算を加算回路で実現でき、0の表現が1通りに定まるため現在の計算機で標準的に用いられる。
1の補数
全ビットを反転しただけの表現。2の補数から1を引いた値に相当する。+0(全ビット0)と−0(全ビット1)という2通りのゼロが生じ、加算時に桁上がりを最下位へ回り込ませる処理が必要になるため扱いにくい。
論理シフト
ビット列全体を左右にずらし、空いた側には常に0を詰めるシフト。符号を考えない符号なし整数やビットパターンの操作に使う。右へkビットの論理シフトは、符号なし整数を2のk乗で割った商に等しい。
算術シフト
符号ビットを保ったままずらすシフト。右シフトでは空いた上位ビットに符号ビットと同じ値を詰める(符号拡張)ため、負の数は負のまま値が1/2になる。2の補数では商を小さいほうへ切り捨てる動きになる。

例題

例題:8ビットの2の補数表現で −45 はどう書くか。
答えと考え方 45 は 00101101。全ビットを反転すると 11010010(これが1の補数)、1を足して 11010011 が2の補数表現。検算として 00101101 + 11010011 = 1 00000000 となり、8ビットに収まる部分が0になるので正しい。
例題:8ビットの2の補数 11010110 を算術右シフトで2ビットずらすとどうなるか。
答えと考え方 11010110 は −42。算術右シフトは上位に符号ビット1を詰めるので 11110101 となり、値は −11。−42 ÷ 4 = −10.5 を小さいほうへ切り捨てた値である。論理右シフトなら 00110101(= 53)となり、まったく違う結果になる。

出典・根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

2. 小数の表現と誤差

固定小数点と浮動小数点の違い、IEEE 754の考え方、そして計算で必ず出てくる4種類の誤差を区別できるようにします。

小数の持ち方には2通りあります。固定小数点数は「小数点の位置をあらかじめ決めておく」方式で、たとえば16ビットのうち下位8ビットを小数部と決めれば、分解能は1/256 = 0.00390625 に固定されます。整数演算とほぼ同じ回路で計算でき高速ですが、扱える値の幅が狭いのが弱点です。浮動小数点数は「符号・指数部・仮数部」に分けて、値を ±仮数 × 基数^指数 の形で持ちます。広い範囲の数を同じビット数で表せる代わりに、有効数字の桁数には限りがあります。

現在ほとんどの処理系が採用しているのがIEEE 754です。単精度(32ビット)は符号1ビット・指数部8ビット・仮数部23ビット、倍精度(64ビット)は符号1ビット・指数部11ビット・仮数部52ビットに分かれます。指数部は負の指数も表せるようゲタばき(バイアス)表現になっていて、単精度のバイアスは127です。正規化された数では仮数の先頭は必ず1になるので、その1は記憶せず省略します(けち表現)。したがって仮数部23ビットでも実質24ビットぶんの精度が得られます。

誤差は4つを区別できれば十分戦えます。丸め誤差は表現できる桁数を超えた部分を切り捨て・切上げ・四捨五入することで生じる誤差で、10進数の0.1が2進数では循環小数になるため、有限桁では正確に表せないのが典型例です。打切り誤差は無限級数や反復計算を有限回で止めることで生じます。桁落ちはほぼ等しい2数の差を取ったときに有効桁数が激減する現象、情報落ちは絶対値が極端に違う2数を加減算したときに小さいほうが結果に反映されない現象です。加算はなるべく絶対値の小さいものから行う、といった対策が有効です。

4種類の誤差の比較
誤差いつ起きるか典型例主な対策
丸め誤差表せる桁数を超えた部分を丸めたとき10進0.1を2進浮動小数点で表す精度の高い型を使う/整数や10進型で持つ
打切り誤差無限の計算を有限回で止めたとき級数の計算を第n項で止める項数・反復回数を増やす
桁落ちほぼ等しい2数の差を取ったとき1.234567 − 1.234566式変形して差の計算を避ける
情報落ち絶対値が極端に違う2数を加減算したとき10^8 + 10^-8絶対値の小さい順に加算する
IEEE 754 単精度のビット配分と読み方
IEEE 754 単精度(32ビット)の並び   [S][   E(8)   ][         M(23)          ]   1     8ビット          23ビット   例)  0 10000010 10100000000000000000000   符号 S = 0        → 正  指数 E = 10000010 → 130、バイアス127を引いて 3  仮数 M = 101...   → けち表現の1を戻して 1.101(2) = 1.625   値 = +1.625 × 2^3 = 13.0

用語

固定小数点数
小数点の位置をビット列のどこか一箇所に固定して小数を表す方式。整数演算とほぼ同じ回路で処理でき高速だが、表現できる値の範囲と分解能があらかじめ決まってしまうため、極端に大きい値や小さい値は扱えない。
浮動小数点数
値を符号・指数部・仮数部に分け、±仮数×基数^指数 の形で表す方式。同じビット数で非常に広い範囲の値を表せるが、有効桁数は仮数部の長さで頭打ちになるため、演算のたびに丸め誤差が入りうる。
けち表現(ケチ表現)
正規化した浮動小数点数の仮数は必ず 1.xxx の形になるので、先頭の1をビットとして記憶しない工夫。IEEE 754の正規化数で使われ、単精度では仮数部23ビットで実質24ビットぶんの精度が得られる。
桁落ち
値がほぼ等しい2つの数の差を求めたときに、上位の桁が打ち消し合って有効桁数が大幅に減ってしまう現象。式を変形して差の計算を避ける(有理化するなど)ことで回避できる場合が多い。
情報落ち
絶対値の差が非常に大きい2数を加減算したとき、小さいほうの値の下位桁が丸められて結果にまったく反映されなくなる現象。多数の値を合計するときは絶対値の小さいものから順に足すと影響を減らせる。
打切り誤差
無限に続く級数や、収束するまで繰り返す反復計算を、有限の項数・回数で打ち切ることによって生じる誤差。計算量と精度のトレードオフであり、打切り条件を厳しくすれば小さくなるが計算時間は増える。

例題

例題:16ビットの固定小数点数(2の補数、下位8ビットが小数部)で表せる最小の値は。
答えと考え方 整数として見ると2の補数16ビットなので −32768 〜 32767。これを 2^8 = 256 で割ると −128.0 〜 127.99609375 になる。したがって最小値は −128.0、分解能(隣り合う値の差)は 1/256 = 0.00390625。
例題:なぜ 0.1 + 0.2 が 0.3 とぴったり一致しないのか。
答えと考え方 0.1 も 0.2 も2進数では循環小数になり、有限ビットの仮数部では正確に表せないため、格納した時点ですでに丸め誤差を含んでいる。その和も0.3の最も近い表現とはわずかにずれるので、浮動小数点数どうしは等号ではなく差の絶対値が十分小さいかで比較する。

出典・根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)/IEEE 754(二進浮動小数点数演算標準)

3. 論理演算・集合・BNF

AND/OR/XORの使い分け、ド・モルガンの法則、集合の数え上げ、そしてBNFと逆ポーランド記法の読み方をまとめます。

論理演算は真(1)と偽(0)に対する演算です。論理積ANDは両方1のときだけ1、論理和ORはどちらかが1なら1、否定NOTは反転、排他的論理和XORは2つが異なるときだけ1になります。ビット列に対して同じ演算を桁ごとに行うのがビット演算で、実務では「AND は必要なビットだけ残すマスク」「OR は特定のビットを1にする」「XOR は特定のビットを反転する」という使い分けが基本形です。XOR は同じ値を2回適用すると元に戻る(A XOR B XOR B = A)性質があり、簡易な暗号化やスワップにも使われます。

ド・モルガンの法則は「not(A and B) = (not A) or (not B)」「not(A or B) = (not A) and (not B)」の2本です。否定を内側に入れるとANDとORが入れ替わる、と覚えます。集合でも同じ形が成り立ち、補集合を取ると積集合と和集合が入れ替わります。集合の数え上げでは包除原理が頻出で、2つなら |A∪B| = |A| + |B| − |A∩B|、3つなら |A∪B∪C| = |A| + |B| + |C| − |A∩B| − |B∩C| − |C∩A| + |A∩B∩C| です。足しすぎた重なりを引き、引きすぎた3重の重なりを足し戻す、という構造になっています。

BNF(バッカス・ナウア記法)は言語の構文を定義する記法で、「::=」の左に定義する構文要素、右にその中身を書き、「|」で選択肢を並べます。自分自身を右辺に含める再帰的な定義によって、任意の長さの並びを表現できるのが特徴です。逆ポーランド記法(後置記法)は演算子をオペランドの後ろに書く方式で、括弧が一切要らないという利点があります。評価はスタックを使い、オペランドは積み、演算子が来たら上から2つ取り出して計算し結果を積み直します。取り出す順番に注意し、先に取り出したほうが右側のオペランドです。

基本的な論理演算の真理値表
ABA AND BA OR BA XOR BNOT A
000001
010111
100110
111100
BNFの書き方と、逆ポーランド記法への変換・評価
BNF による定義の例   <数字> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9  <英字> ::= a | b | c  <名前> ::= <英字> | <名前> <英字> | <名前> <数字> 逆ポーランド記法(後置記法)の例   中置  (a + b) * (c - d)  後置  a b + c d - *   評価  8 3 2 - * 4 +        → 3 2 - = 1、8 * 1 = 8、8 + 4 = 12

用語

排他的論理和(XOR)
2つの入力が異なるときだけ1になる論理演算。同じ値で2回適用すると元に戻るため、特定ビットの反転や簡易な暗号化に使われる。A XOR A = 0、A XOR 0 = A という性質も頻出。
ド・モルガンの法則
否定を分配するとANDとORが入れ替わるという法則。not(A and B) = (not A) or (not B)、not(A or B) = (not A) and (not B)。集合では補集合を取ると積集合と和集合が入れ替わる形で現れる。
包除原理
複数の集合の和集合の要素数を求める考え方。単純に足すと重複部分を数えすぎるので引き、3つ以上では引きすぎた分を足し戻す。2集合なら |A∪B| = |A|+|B|−|A∩B| となる。
BNF
プログラミング言語などの構文を形式的に定義する記法。「::=」の左辺に構文要素、右辺にその定義を書き、「|」で選択肢を並べる。右辺に自分自身を含む再帰的定義によって、任意長の並びを有限の規則で表せる。
逆ポーランド記法
演算子をオペランドの後ろに書く後置記法。演算の順序が並びだけで決まるため括弧が不要で、スタックを使って左から一度読むだけで評価できる。コンパイラの式の評価やスタックマシンで使われる。

例題

例題:2進数 10110011 の下位4ビットだけを反転したい。どうすればよいか。
答えと考え方 反転したいビットを1にしたマスク 00001111 とのXORを取る。10110011 XOR 00001111 = 10111100。ANDならビットを0にするマスク、ORならビットを1にするマスクになるので、反転にはXORを使う。
例題:逆ポーランド記法「5 2 + 3 4 * -」の値は。
答えと考え方 左から読む。5、2を積み、+ で 7。3、4を積み、* で 12。最後の - はスタック上位2つを取り出し、先に取り出した12が右側になるので 7 − 12 = −5。取り出す順番を逆にすると符号を間違えるので注意。

出典・根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

4. 確率・統計と待ち行列

場合の数・条件付き確率・期待値・ばらつきの指標に加えて、性能計算で必ず出るM/M/1の待ち行列を使えるようにします。

場合の数は「順序を区別するか」で決まります。区別するのが順列 nPr = n!/(n−r)!、区別しないのが組合せ nCr = n!/{r!(n−r)!} です。委員を選ぶ、チームを作るといった問題は組合せ、並べる・役職を割り当てるは順列になります。確率では条件付き確率が重要で、Bが起きたという条件のもとでAが起きる確率は P(A|B) = P(A∩B)/P(B) です。原因の確率を結果から逆算するベイズの定理は、この式を分母の全確率で書き直したものにすぎません。期待値は「値×確率」をすべて足したもので、確率の合計が1になっているかを必ず確かめます。

データのばらつきは分散と標準偏差で測ります。分散は偏差(各値−平均)の2乗の平均、標準偏差はその平方根で、元のデータと単位がそろうぶん解釈しやすくなります。ここで注意したいのが割る数で、手元のデータ全体そのものを対象とする母分散は偏差平方和をnで割り、標本から母集団を推定する不偏分散はn−1で割ります。問題文にどちらか明記されていなければ答えが2通りになってしまうため、試験問題では必ず指定されます。代表値は平均値・中央値・最頻値の3つで、極端に大きな外れ値があると平均だけが引っ張られるのが特徴です。

待ち行列理論のM/M/1は、到着がポアソン分布(到着間隔が指数分布)、サービス時間が指数分布、窓口が1つのモデルです。平均到着率λと平均サービス時間Tsから利用率ρ=λ×Tsを求め、平均待ち時間 Tw = ρ/(1−ρ)×Ts、平均応答時間 Tq = Tw + Ts = Ts/(1−ρ) を計算します。要はρ/(1−ρ)という倍率が効いていて、ρが0.5なら待ち時間はサービス時間と同じ、0.8なら4倍、0.9なら9倍と、利用率が1に近づくほど爆発的に増えるのがこのモデルの主張です。ρ≧1では行列が発散し、定常状態が存在しません。

代表値・散布度と待ち行列の指標
指標求め方特徴・注意点
平均値全データの合計 ÷ 個数外れ値に強く引っ張られる
中央値小さい順に並べた中央の値外れ値の影響を受けにくい
最頻値最も多く現れる値分布が平坦だと定まりにくい
母分散偏差の2乗の合計 ÷ nデータ全体そのものを対象にする場合
不偏分散偏差の2乗の合計 ÷ (n−1)標本から母集団の分散を推定する場合
利用率ρ平均到着率λ × 平均サービス時間Ts1以上では行列が発散する
平均待ち時間Twρ/(1−ρ) × Tsサービス時間を含まない待ち時間
平均応答時間TqTs/(1−ρ)(=Tw+Ts)待ち時間+サービス時間
待ち行列M/M/1でよく使う公式一式
M/M/1 モデルの公式   λ  : 平均到着率(単位時間あたりの到着件数)  Ts : 平均サービス時間   利用率      ρ  = λ × Ts        (0 ≦ ρ < 1)  平均待ち時間 Tw = ρ / (1 − ρ) × Ts  平均応答時間 Tq = Tw + Ts = Ts / (1 − ρ)  平均待ち人数 Lq = ρ^2 / (1 − ρ)  平均系内人数 L  = ρ / (1 − ρ)

用語

条件付き確率
事象Bが起きたと分かっている状況で事象Aが起きる確率。P(A|B) = P(A∩B) / P(B) で定義される。結果から原因の確率を求めるベイズの定理は、この分母を全確率の公式で展開した形になっている。
期待値
確率変数が取りうる値に、それぞれの確率を掛けて合計した値。長期間繰り返したときの1回あたりの平均に相当する。計算前に確率の合計が1になっているかを確かめるのが検算の基本になる。
標準偏差
分散の正の平方根で、データのばらつきの大きさを元のデータと同じ単位で表した指標。母集団そのものを扱う母分散は偏差平方和をnで割り、標本から母集団を推定する不偏分散はn−1で割る点が異なる。
相関係数
2つの変数の直線的な関係の強さを −1 以上 1 以下で表す指標。絶対値が1に近いほど直線関係が強く、0に近いほど直線的な関係が弱い。値が大きくても因果関係があることは意味しない。
M/M/1待ち行列
到着がポアソン分布、サービス時間が指数分布、窓口が1つのモデル。利用率ρ=平均到着率×平均サービス時間で、平均待ち時間はρ/(1−ρ)×サービス時間。ρが1に近づくと待ち時間は急激に増大する。
ニュートン法
方程式 f(x)=0 の近似解を求める反復解法。現在の近似値における接線とx軸の交点を次の近似値とする操作を繰り返す。収束が速い一方、初期値や関数の形によっては収束しないことがある。

例題

例題:平均サービス時間20ミリ秒、平均到着率が毎秒40件のとき、平均待ち時間は。
○実数型: waitTime(実数型: lambda, 実数型: ts)  実数型: rho ← lambda × ts  if (rho ≧ 1)    return 未定義の値  /* 行列が発散する */  endif  return rho ÷ (1 − rho) × ts
答えと考え方 ρ = 40 × 0.020 = 0.8。Tw = 0.8/(1−0.8) × 20 = 4 × 20 = 80ミリ秒。サービス時間を含む平均応答時間は 80 + 20 = 100ミリ秒なので、どちらを問われているかを必ず読み分ける。
例題:工場Aが全体の60%を作り不良率2%、工場Bが40%を作り不良率5%。取り出した1個が不良品だったとき、それが工場A製である確率は。
答えと考え方 不良品である確率は 0.6×0.02 + 0.4×0.05 = 0.012 + 0.020 = 0.032。求める条件付き確率は 0.012 ÷ 0.032 = 0.375。生産量の多いAより、不良率の高いBのほうが不良品全体では多くなる点が直感とずれやすい。

出典・根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(応用数学)

5. 情報理論と通信・制御

情報量と符号化、誤り検出訂正、文字コード、AIの基礎、そして標本化定理とフィードバック制御までを横断します。

情報量の単位はビットで、n通りの状態を区別するには log2(n) を切り上げたビット数が必要です。たとえば5000種類のコードなら 2^12 = 4096 では足りず、2^13 = 8192 なので13ビット必要になります。各記号の生起確率が異なる場合、1記号あたりの平均情報量(エントロピー)は −Σ p log2(p) で求められ、これが理論上の圧縮限界を与えます。出現頻度の高い記号に短い符号を割り当てるハフマン符号のような可変長符号化は、この限界に近づける工夫です。

通信路では必ず誤りが起きるので、検出と訂正の仕組みが要ります。パリティチェックは1ビットの冗長ビットを付け、1の個数の偶奇で1ビット誤り(正確には奇数個の誤り)を検出しますが、2ビット誤りは見逃し、訂正もできません。CRCは生成多項式による除算の余りを付加する方式で、連続して発生するバースト誤りに強く、通信やストレージで広く使われます。ハミング符号は複数のパリティビットを組み合わせて誤った位置まで特定でき、1ビットの誤り訂正が可能です。一般に、符号の最小ハミング距離がdなら d−1 ビットの誤り検出、⌊(d−1)/2⌋ ビットの誤り訂正ができます。

文字コードでは、ASCIIが英数字と記号を7ビットで表す基礎、日本語向けにシフトJISやEUC-JPが作られ、世界中の文字を単一の文字集合にまとめたのがUnicodeです。Unicodeを実際のバイト列にする符号化方式のひとつがUTF-8で、1文字を1〜4バイトの可変長で表し、ASCII範囲の文字は1バイトのままなので既存のASCIIと互換性があります。AI分野では、正解ラベル付きデータから予測規則を学ぶ教師あり学習、ラベルなしデータから構造を見つける教師なし学習、報酬を最大化する行動を試行錯誤で学ぶ強化学習の3分類が基本です。訓練データにだけ過剰に適合して未知のデータで精度が落ちる状態を過学習といいます。

アナログの世界とつなぐのが標本化・量子化・符号化の3段階です。標本化定理(シャノンの定理)は、信号に含まれる最高周波数の2倍以上の周波数で標本化すれば元の信号を復元できると述べます。最高20kHzなら40kHz以上が必要です。量子化ビット数を上げれば量子化誤差は小さくなりますがデータ量は増えます。制御ではフィードバック制御が基本で、制御対象の出力をセンサで測って目標値と比べ、その差(偏差)が小さくなるように操作量を決めます。あらかじめ決めた順序で進めるシーケンス制御や、外乱を先読みして補正するフィードフォワード制御と区別してください。

主な誤り検出・訂正方式の比較
方式付加する情報検出できる誤り訂正
パリティチェック1ビット奇数個のビット誤り(2ビット誤りは見逃す)不可
水平垂直パリティ行と列のパリティ1ビット誤りの位置を特定できる1ビット可
チェックサム総和の下位ビット多くの誤りを検出(順序入替えには弱い)不可
CRC生成多項式による除算の余りバースト誤りに強い不可
ハミング符号複数のパリティビット単独検出なら3ビットまで、1ビット訂正と同時なら2ビットまで検出(最小距離4の場合)1ビット可
有限オートマトンを状態遷移表で表した例
オートマトンの状態遷移表(入力は 0 と 1、開始状態 S0、受理状態 S2)         入力0   入力1  S0      S0      S1  S1      S2      S1  S2      S2      S2   文字列 "110" : S0 →1→ S1 →1→ S1 →0→ S2  受理  文字列 "001" : S0 →0→ S0 →0→ S0 →1→ S1  非受理

用語

エントロピー(平均情報量)
各記号の生起確率をpとしたとき −Σ p log2(p) で求まる、1記号あたりの平均的な情報量。値が大きいほど予測しにくく、圧縮しても縮まりにくい。可変長符号化の理論的な限界を示す指標になる。
ハミング距離
同じ長さの2つの符号語を比べ、値が異なるビットの個数。符号全体で最小のハミング距離がdであれば、d−1ビットの誤り検出、⌊(d−1)/2⌋ビットの誤り訂正が可能になる。
CRC
巡回冗長検査。ビット列を多項式とみなし、あらかじめ決めた生成多項式で割った余りを検査符号として付加する。連続した複数ビットの誤り(バースト誤り)に強く、通信やストレージで広く使われる。
UTF-8
Unicodeの符号化方式の一つ。1文字を1〜4バイトの可変長で表し、ASCII範囲の文字は1バイトのままなので従来のASCIIテキストと互換性がある。Webの標準的な文字符号化方式として普及している。
教師なし学習
正解ラベルのないデータだけを使い、データ間の類似性や分布から構造を見つける機械学習の方式。クラスタリングや次元削減が代表例で、正解を与える教師あり学習、報酬で学ぶ強化学習と区別される。
過学習
訓練データの細かな特徴や雑音にまで適合しすぎて、未知のデータに対する精度がかえって下がる状態。訓練データを増やす、モデルを単純にする、正則化や交差検証を行うといった対策がとられる。
標本化定理
アナログ信号に含まれる最高周波数の2倍以上の周波数で標本化すれば、標本値から元の信号を復元できるという定理。これを下回るとエイリアシング(折返し雑音)が生じ、元の波形に戻せなくなる。
フィードバック制御
制御対象の出力をセンサで測定し、目標値との差が小さくなるように操作量を決める閉ループ制御。外乱があっても目標値に近づけられる一方、応答が遅れたり条件によっては発振したりすることがある。

例題

例題:記号A, B, C, Dの生起確率がそれぞれ 1/2, 1/4, 1/8, 1/8 のとき、1記号あたりの平均情報量は。
答えと考え方 −Σ p log2(p) を計算する。1/2 は 1ビット、1/4 は 2ビット、1/8 は 3ビットの情報量なので、0.5×1 + 0.25×2 + 0.125×3 + 0.125×3 = 0.5 + 0.5 + 0.375 + 0.375 = 1.75ビット。等確率なら2ビットなので、偏りがあるぶん小さくなっている。
例題:教師あり学習・教師なし学習・強化学習はどう違うか。
答えと考え方 教師あり学習は入力と正解ラベルの組から予測規則を学ぶ(分類・回帰)。教師なし学習はラベルなしデータから構造を見つける(クラスタリング・次元削減)。強化学習は行動の結果として得られる報酬を手がかりに、報酬の総和が大きくなる方策を試行錯誤で学ぶ。

出典・根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(情報に関する理論・通信に関する理論・計測・制御に関する理論)

確認問題(45問)

四肢択一。「正解と解説」を開くと、正解の理由と他の選択肢が違う理由を確認できます。

問1|基数変換

10進数の105を2進数で表したものはどれか。

  1. 1101001
  2. 1100101
  3. 1101011
  4. 1010011
正解と解説
正解:A. 1101001

105を2で割り続けた余りを下から並べると1101001となる。検算すると64+32+8+1=105で正しい。1100101は64+32+4+1=101、1101011は64+32+8+2+1=107、1010011は64+16+2+1=83であり、いずれも105にならない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問2|2進→16進

2進数の10110101を16進数で表したものはどれか。

  1. 5B
  2. A5
  3. D5
  4. B5
正解と解説
正解:D. B5

2進数4桁が16進数1桁に対応するので、1011と0101に区切る。1011は11すなわちB、0101は5なのでB5となる。A5は10100101、D5は11010101に対応し元の値と異なる。5Bは上位と下位を逆に読んだ誤りで01011011を表す。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問3|16進→10進

16進数の3AFを10進数で表したものはどれか。

  1. 815
  2. 943
  3. 959
  4. 1007
正解と解説
正解:B. 943

各桁の重みは256、16、1なので、3×256+10×16+15×1=768+160+15=943となる。959はAを11と誤ったときの値(3×256+11×16+15)、1007はAを14と誤ったときの値(3×256+14×16+15)、815はAを2と誤ったときの値(3×256+2×16+15)であり、いずれも正しい重み付けになっていない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問4|2の補数

8ビットの2の補数表現で10進数の−45を表したものはどれか。

  1. 00101101
  2. 10101101
  3. 11010010
  4. 11010011
正解と解説
正解:D. 11010011

45は00101101。全ビットを反転して11010010(これは1の補数)とし、1を加えた11010011が2の補数表現である。00101101は+45そのもの、10101101は最上位を符号ビットとして扱う符号絶対値表現、11010010は1の補数表現であり、いずれも2の補数ではない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問5|補数の解釈

8ビットのビット列11101100を2の補数表現の符号付き整数とみなしたとき、表す10進数はどれか。

  1. −108
  2. −20
  3. −19
  4. 236
正解と解説
正解:B. −20

最上位が1なので負。全ビットを反転すると00010011で、1を加えると00010100=20なので元の値は−20である。−108は符号絶対値表現とみなした誤り、−19は1の補数表現とみなした誤り、236は符号なし整数として読んだ値であり、いずれも2の補数の解釈ではない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問6|補数の作り方

ある2進数に対する2の補数を求める手順として適切なものはどれか。

  1. 全ビットを反転し、その結果に1を加える
  2. 全ビットを反転する
  3. 1を加えてから全ビットを反転する
  4. 最上位ビットだけを反転する
正解と解説
正解:A. 全ビットを反転し、その結果に1を加える

2の補数は「全ビット反転(1の補数)+1」で得られる。全ビット反転だけでは1の補数にとどまる。1を加えてから反転すると、元の値をxとして−x−2となり、正しい2の補数−xより2小さい値になるので一致しない。最上位ビットだけの反転は符号絶対値表現の符号反転であり、2の補数とは別物である。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問7|算術右シフト

8ビットの2の補数表現のビット列11010110を、2ビットだけ算術右シフトした結果はどれか。

  1. 00110101
  2. 01011000
  3. 10110101
  4. 11110101
正解と解説
正解:D. 11110101

算術右シフトは空いた上位ビットに符号ビットと同じ値を詰めるので、11010110は11110101になる。値で見ると−42が−11となり、−42÷4を小さいほうへ切り捨てた結果に一致する。00110101は論理右シフトの結果、01011000は左シフトの結果であり、10110101はどちらでもない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問8|シフトと乗算

符号なし整数xについて、xを3ビット左シフトした値から、xを1ビット左シフトした値を引いた結果は、xの何倍か。ここで、シフトによるあふれは生じないものとする。

  1. 4倍
  2. 6倍
  3. 7倍
  4. 16倍
正解と解説
正解:B. 6倍

1ビット左シフトは2倍なので、3ビット左シフトは2の3乗すなわち8倍、1ビット左シフトは2倍である。8x−2x=6xとなり6倍が正しい。4倍は8x−4xとした誤り、7倍は8x−xと1ビットシフトを無視した誤り、16倍は引き算を掛け算と取り違えた場合の値である。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問9|2進小数

2進数の0.1011を10進数で表したものはどれか。

  1. 0.5625
  2. 0.6250
  3. 0.6875
  4. 0.8125
正解と解説
正解:C. 0.6875

小数第1位から順に重みは0.5、0.25、0.125、0.0625なので、0.5+0+0.125+0.0625=0.6875となる。0.5625は0.1001、0.6250は0.1010、0.8125は0.1101に対応する値であり、いずれも与えられたビット並びとは一致しない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問10|固定小数点

16ビットの固定小数点数で、2の補数表現を用い、下位8ビットを小数部とする。この形式で表せる最も小さい値はどれか。

  1. −32768.0
  2. −256.0
  3. −128.0
  4. −127.99609375
正解と解説
正解:C. −128.0

16ビットの2の補数が表す整数の最小値は−32768で、小数部が8ビットなのでこれを2の8乗=256で割り、−128.0となる。−127.99609375は最大値127.99609375の符号を誤って付けたもの、−32768.0は小数点位置を考慮していない値、−256.0は割る数を誤った値である。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問11|IEEE754

IEEE 754の単精度浮動小数点数(32ビット)における、符号部・指数部・仮数部のビット数の組合せはどれか。

  1. 1ビット、8ビット、23ビット
  2. 1ビット、7ビット、24ビット
  3. 1ビット、10ビット、21ビット
  4. 1ビット、11ビット、20ビット
正解と解説
正解:A. 1ビット、8ビット、23ビット

単精度は符号1ビット、指数部8ビット、仮数部23ビットで合計32ビットである。指数部11ビットは倍精度(64ビット)の値であり単精度ではない。他の組合せは合計こそ32ビットになるが、IEEE 754が定める配分と一致しない。なお正規化数ではけち表現により実質24ビットぶんの精度をもつ。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)/IEEE 754(二進浮動小数点数演算標準)

問12|指数部

IEEE 754の単精度浮動小数点数では、指数部8ビットをバイアス127のゲタばき表現で格納する。指数部のビット列が10000011であるとき、実際の指数の値はどれか。

  1. −123
  2. 3
  3. 4
  4. 131
正解と解説
正解:C. 4

10000011は10進数で131であり、バイアス127を引いた131−127=4が実際の指数である。131はバイアスを引く前の格納値そのもの、3はバイアスを128として引いた誤り、−123はバイアス127を二重に引いた(131−127−127)誤りである。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)/IEEE 754(二進浮動小数点数演算標準)

問13|浮動小数点

IEEE 754の単精度浮動小数点数(符号1ビット、指数部8ビット・バイアス127、仮数部23ビット、正規化数はけち表現)で、ビット列が「0 10000010 10100000000000000000000」であるとき、表す値はどれか。

対象のビット列
  符号     指数部      仮数部   0     10000010   10100000000000000000000
  1. 6.5
  2. 10.0
  3. 13.0
  4. 26.0
正解と解説
正解:C. 13.0

符号0は正、指数部10000010は130でバイアス127を引くと3、仮数はけち表現の1を戻して1.101(2)=1.625。よって1.625×2の3乗=13.0となる。6.5と26.0は指数を1つずらした値、10.0は仮数を1.25と読み違えた値であり、いずれも与えられたビット列とは対応しない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)/IEEE 754(二進浮動小数点数演算標準)

問14|桁落ち

値がほぼ等しい二つの数値の差を求めたときに、上位の桁が打ち消し合って有効桁数が大幅に減ってしまう現象を何というか。

  1. 情報落ち
  2. 丸め誤差
  3. 打切り誤差
  4. 桁落ち
正解と解説
正解:D. 桁落ち

近い値どうしの減算で有効桁数が失われる現象が桁落ちである。情報落ちは絶対値が大きく異なる数の加減算で小さい側が無視される現象、丸め誤差は表現桁数を超えた部分を丸めることによる誤差、打切り誤差は無限の計算を有限回で止めることによる誤差であり、いずれも原因が異なる。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問15|情報落ち

絶対値の大きさが極端に異なる二つの数値を加算したとき、絶対値の小さい側の値が結果にまったく反映されなくなる現象を何というか。

  1. 情報落ち
  2. 桁落ち
  3. 打切り誤差
  4. オーバフロー
正解と解説
正解:A. 情報落ち

大きな数に小さな数を足すと、小さい側が仮数部の外へ追い出されて消える現象が情報落ちである。桁落ちは近い値の減算で有効桁が減る現象、打切り誤差は計算を有限回で止めることによる誤差、オーバフローは表現できる範囲を超えることであり、いずれも別の現象である。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問16|誤差の種類

次の①、②で生じる誤差の名称の組合せとして適切なものはどれか。①無限級数の計算を有限の項数で打ち切った。②10進数の0.1を2進浮動小数点数で表現した。

  1. ①打切り誤差 ②丸め誤差
  2. ①丸め誤差 ②打切り誤差
  3. ①桁落ち ②情報落ち
  4. ①打切り誤差 ②情報落ち
正解と解説
正解:A. ①打切り誤差 ②丸め誤差

①は無限に続く計算を途中で止めたことによる打切り誤差である。②は0.1が2進数では循環小数となり有限ビットに収まらないため丸められることによる丸め誤差である。①と②を入れ替えた組合せは誤り。桁落ちは近い値の減算、情報落ちは絶対値の差が大きい加減算で生じるもので、どちらもここでは該当しない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問17|相対誤差

真の値が3.14159265…である円周率を3.142と表したときの相対誤差に最も近い値はどれか。相対誤差は「(近似値と真の値の差の絶対値)÷(真の値)」とする。

  1. 1.3×10^-4
  2. 4.1×10^-4
  3. 1.3×10^-3
  4. 4.1×10^-3
正解と解説
正解:A. 1.3×10^-4

差の絶対値は|3.142−3.14159265|≒4.07×10^-4で、これを真の値3.14159…で割ると約1.30×10^-4となる。4.1×10^-4は相対誤差ではなく絶対誤差そのものの値。1.3×10^-3と4.1×10^-3はいずれも桁が一つ大きく、真の値で割る操作を行っていない、または桁を誤ったものである。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(応用数学)

問18|ドモルガン

論理式 not(A and B) と常に等しい論理式はどれか。

  1. (not A) and (not B)
  2. not(A or B)
  3. A or B
  4. (not A) or (not B)
正解と解説
正解:D. (not A) or (not B)

ド・モルガンの法則により、not(A and B)は(not A) or (not B)に等しい。(not A) and (not B)はnot(A or B)と等しい別の式で、A=1・B=0のとき not(A and B) は1、(not A) and (not B) は0となり一致しない。not(A or B)も同じ入力で0となり一致しない。A or Bは、A=1・B=1のとき1になるが not(A and B) は0であり等価ではない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問19|排他的論理和

排他的論理和 A XOR B と常に等しい論理式はどれか。

  1. (A and B) or (not A and not B)
  2. (A or B) and (A and B)
  3. (A and not B) or (not A and B)
  4. not(A and B)
正解と解説
正解:C. (A and not B) or (not A and B)

XORは二つの入力が異なるときだけ1になるので、Aだけが1の場合とBだけが1の場合の和で表せる。(A and B) or (not A and not B)は一致するときに1になる同値(XNOR)で真理値が逆。(A or B) and (A and B)はA and Bに簡約され両方1のときだけ1。not(A and B)はA=0・B=0でも1になり一致しない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問20|ビットマスク

16進数の5Aと0Fのビットごとの論理積(AND)を16進数で表したものはどれか。

  1. 0A
  2. 50
  3. 55
  4. 5F
正解と解説
正解:A. 0A

5Aは01011010、0Fは00001111。ビットごとのANDは00001010=0Aとなる。5Fは論理和(OR)の結果、55は排他的論理和(XOR)の結果、50は5Aの上位4ビットだけを残す別のマスク(F0とのAND)の結果であり、いずれも0FとのANDではない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問21|ビット反転

2進数の10110011と00001111のビットごとの排他的論理和(XOR)の結果はどれか。

  1. 00000011
  2. 10110000
  3. 10111100
  4. 10111111
正解と解説
正解:C. 10111100

XORは対応するビットが異なるとき1になる。上位4ビットはすべて0とのXORなのでそのまま1011、下位4ビットは1とのXORなので反転して1100となり、10111100が正しい。00000011は論理積、10111111は論理和の結果、10110000は下位4ビットを0にした結果であり、いずれもXORではない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問22|集合

社員100人に研修AとBの受講状況を調べたところ、Aを受講した人が58人、Bを受講した人が45人、両方を受講した人が22人であった。どちらも受講していない人は何人か。

  1. 15人
  2. 22人
  3. 25人
  4. 19人
正解と解説
正解:D. 19人

少なくとも一方を受講した人数は包除原理より58+45−22=81人なので、どちらも受講していない人は100−81=19人である。22人は両方受講した人数そのもの。15人と25人はいずれも包除原理を正しく適用していない値であり、100−(58+45−22)とは一致しない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問23|包除原理

300人に3種類のサービスA、B、Cの利用状況を調べたところ、A利用が120人、B利用が90人、C利用が70人、AとBの両方が40人、BとCの両方が30人、CとAの両方が25人、3つすべてが15人であった。少なくとも1つを利用している人は何人か。

  1. 165人
  2. 185人
  3. 200人
  4. 215人
正解と解説
正解:C. 200人

3集合の包除原理より120+90+70−40−30−25+15=200人となる。185人は最後の3重の重なり15を足し戻していない誤り、215人は3重の重なりを二重に足した誤り、165人は2重の重なりを引きすぎた誤りである。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問24|後置記法

中置記法で書かれた式 (a + b) * (c − d) を逆ポーランド記法(後置記法)で表したものはどれか。

変換前の式
  中置記法  (a + b) * (c - d)   後置記法  ?
  1. a b + c d - *
  2. a b c d + - *
  3. a b + c d * -
  4. + a b * - c d
正解と解説
正解:A. a b + c d - *

後置記法は演算子をオペランドの後ろに置く。(a+b)は a b +、(c−d)は c d − となり、その二つを掛けるので a b + c d - * が正しい。a b c d + - * は演算の対応が崩れている。a b + c d * - は乗算と減算が入れ替わっている。+ a b * - c d は演算子を前に置く前置記法(ポーランド記法)の形である。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問25|後置式評価

逆ポーランド記法で表された次の式を評価した結果はどれか。

評価する後置記法の式
  8 3 2 - * 4 +
  1. 12
  2. 14
  3. 26
  4. 30
正解と解説
正解:A. 12

左から読み、8、3、2を積む。−でスタック上位2つを取り出し3−2=1、*で8×1=8、最後に4を積んで+により8+4=12となる。14は(8−3)×2+4と読み違えた値、26は8×3−2+4と読み違えた値、30はさらに演算順序を誤った値であり、いずれも後置記法の評価規則に合わない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問26|BNF

次のBNFで定義される<名前>として生成できる文字列はどれか。

対象のBNF定義
  <数字> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9  <英字> ::= a | b | c  <名前> ::= <英字> | <名前> <英字> | <名前> <数字>
  1. 1ab
  2. 9a
  3. ab-c
  4. a1b
正解と解説
正解:D. a1b

<名前>は必ず<英字>から始まり、その後ろに<英字>か<数字>を任意個続けられる。a1bは a→a1→a1b と導出できるので生成可能。1abと9aは先頭が数字であり<名前>の最初の要素になれない。ab-cは記号「-」が<英字>にも<数字>にも含まれず生成できない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(離散数学)

問27|組合せ

10人の社員の中から4人の委員を選ぶ。選ばれた4人に役割の区別はないものとすると、選び方は何通りか。

  1. 24通り
  2. 210通り
  3. 720通り
  4. 5040通り
正解と解説
正解:B. 210通り

順序を区別しないので組合せであり、10C4=(10×9×8×7)÷(4×3×2×1)=210通りである。5040通りは順序を区別した順列10P4の値。24通りは4人の並べ方4!の値。720通りは10P3の値であり、いずれも設問の条件には合わない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(応用数学)

問28|条件付確率

ある製品は工場Aで全体の60%、工場Bで40%が作られ、不良率は工場Aが2%、工場Bが5%である。製品を1個無作為に取り出したところ不良品であった。この製品が工場Aで作られた確率はどれか。

  1. 0.020
  2. 0.375
  3. 0.600
  4. 0.625
正解と解説
正解:B. 0.375

不良品である確率は0.6×0.02+0.4×0.05=0.012+0.020=0.032。そのうち工場A由来は0.012なので、求める条件付き確率は0.012÷0.032=0.375である。0.625は工場B由来である確率、0.600は不良品という条件を無視した工場Aの生産割合、0.020は工場Aの不良率そのものである。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(応用数学)

問29|期待値

あるくじの賞金と当たる確率は、0円が50%、100円が30%、500円が15%、1000円が5%である。このくじ1回あたりの賞金の期待値はどれか。

  1. 125円
  2. 175円
  3. 400円
  4. 155円
正解と解説
正解:D. 155円

期待値は賞金×確率の総和なので、0×0.5+100×0.3+500×0.15+1000×0.05=0+30+75+50=155円である。400円は確率を無視して賞金の単純平均(0+100+500+1000)÷4=400としたときの値。125円と175円はいずれかの項の重み付けを誤ったもので、確率で重み付けした合計とは一致しない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(応用数学)

問30|標準偏差

8個のデータ 2, 4, 4, 4, 5, 5, 7, 9 について、これら8個を母集団そのものとみなし、偏差の2乗の合計をデータ数8で割って分散を求めるとき、標準偏差はいくらか。

  1. 1.41
  2. 2.00
  3. 2.14
  4. 4.00
正解と解説
正解:B. 2.00

平均は40÷8=5。偏差の2乗の合計は9+1+1+1+0+0+4+16=32で、8で割ると分散は4.00、その平方根なので標準偏差は2.00である。4.00は分散そのものの値。2.14は8ではなく7で割る不偏分散から求めた値。1.41は分散を2としたときの値であり、いずれも設問の定義に合わない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(応用数学)

問31|代表値

データ 3, 5, 5, 6, 7, 8, 22 の平均値、中央値、最頻値の組合せとして正しいものはどれか。

  1. 平均値8、中央値6、最頻値5
  2. 平均値7、中央値6、最頻値5
  3. 平均値8、中央値5、最頻値6
  4. 平均値6、中央値6、最頻値5
正解と解説
正解:A. 平均値8、中央値6、最頻値5

合計は56、個数は7なので平均値は8。小さい順に並んだ7個の中央(4番目)は6なので中央値は6。2回現れる5が最頻値である。他の選択肢は平均値または中央値・最頻値を取り違えている。外れ値22があるため平均値だけが大きく引き上げられている点が本問の要点である。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(応用数学)

問32|相関係数

二つの変数の相関係数に関する記述のうち、適切なものはどれか。

  1. 常に0以上1以下の値をとる
  2. 値が0であれば二つの変数は独立であることが証明される
  3. −1以上1以下の値をとり、絶対値が1に近いほど直線的な関係が強い
  4. 絶対値が1に近いほど、一方が他方の原因であることを示す
正解と解説
正解:C. −1以上1以下の値をとり、絶対値が1に近いほど直線的な関係が強い

相関係数は−1以上1以下で、絶対値が1に近いほど直線的な関係が強い。負の相関があるため0以上とは限らない。相関係数0は直線的な関係がないことを示すだけで、曲線的な関係がありうるため独立の証明にはならない。相関は因果関係を意味しないので、原因と結果を示すという記述も誤りである。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(応用数学)

問33|待ち行列

M/M/1の待ち行列モデルに従うシステムがある。平均サービス時間が20ミリ秒、平均到着率が毎秒40件のとき、サービスを受け始めるまでに待つ平均時間(サービス時間は含まない)はどれか。

  1. 20ミリ秒
  2. 80ミリ秒
  3. 100ミリ秒
  4. 160ミリ秒
正解と解説
正解:B. 80ミリ秒

利用率ρ=40×0.020=0.8。平均待ち時間はρ/(1−ρ)×平均サービス時間=0.8/0.2×20=4×20=80ミリ秒である。100ミリ秒は待ち時間にサービス時間を加えた平均応答時間。20ミリ秒はサービス時間そのもの。160ミリ秒は倍率を8と誤ったものである。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(応用数学)

問34|利用率

M/M/1の待ち行列モデルにおいて、平均サービス時間を変えずに利用率を0.5から0.8に上げた。平均待ち時間は何倍になるか。

  1. 1.6倍
  2. 2.5倍
  3. 4倍
  4. 8倍
正解と解説
正解:C. 4倍

平均待ち時間はρ/(1−ρ)×サービス時間。ρ=0.5では0.5/0.5=1倍、ρ=0.8では0.8/0.2=4倍なので、比は4÷1=4倍である。1.6倍は利用率の比0.8÷0.5をそのまま答えたもの。2.5倍は平均待ち時間ではなく平均応答時間Ts/(1−ρ)の比(5÷2)を求めた誤り。8倍は倍率の比較を誤ったもので、いずれも利用率が1に近づくほど待ち時間が急増するという性質を正しく捉えていない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(応用数学)

問35|グラフ理論

8個の頂点をもち、どの2頂点の間にも辺が1本ずつ引かれている無向グラフ(完全グラフ)の辺の総数はどれか。

  1. 16本
  2. 28本
  3. 56本
  4. 64本
正解と解説
正解:B. 28本

無向の完全グラフの辺数はn(n−1)/2なので、8×7÷2=28本である。56本は各辺を向きの違いで二重に数えた値(有向グラフの場合の辺数)、64本は8×8として自分自身への辺まで数えた値、16本は8×2として頂点ごとの次数を誤って足した値である。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(応用数学)

問36|ニュートン法

数値解析におけるニュートン法の説明として適切なものはどれか。

  1. 関数のある点における接線とx軸との交点を次の近似値とする操作を繰り返し、方程式 f(x)=0 の近似解を求める
  2. 解が存在する区間を半分に分ける操作を繰り返して範囲を狭め、近似解を求める
  3. 測定値との残差の2乗和が最小になるように、当てはめる関数の係数を決める
  4. 区間を細かく分割し、各区間を台形とみなして面積を合計することで定積分の近似値を求める
正解と解説
正解:A. 関数のある点における接線とx軸との交点を次の近似値とする操作を繰り返し、方程式 f(x)=0 の近似解を求める

ニュートン法は接線とx軸の交点を次の近似値とする反復解法で、収束が速い一方、初期値によっては収束しないことがある。区間を半分にしていく方法は二分法、残差の2乗和を最小化するのは最小二乗法、区間を台形として面積を足すのは台形公式であり、いずれも別の手法である。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(応用数学)

問37|情報量

5000種類の商品を、それぞれ異なる2進数のコードで区別したい。必要となる最小のビット数はどれか。

  1. 11ビット
  2. 12ビット
  3. 13ビット
  4. 14ビット
正解と解説
正解:C. 13ビット

nビットで表せる種類は2のn乗。2の11乗=2048、2の12乗=4096はいずれも5000種類に足りず、2の13乗=8192で初めて足りるので最小は13ビットである。11ビットと12ビットでは種類が不足する。14ビットでも区別自体はできるが「最小」ではないため、設問の条件を満たさない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(情報に関する理論)

問38|平均情報量

4種類の記号A、B、C、Dが、それぞれ確率 1/2、1/4、1/8、1/8 で独立に発生する情報源がある。1記号あたりの平均情報量(エントロピー)は何ビットか。

  1. 1.50
  2. 1.75
  3. 2.00
  4. 2.25
正解と解説
正解:B. 1.75

各記号の情報量は−log2(p)なので、Aが1ビット、Bが2ビット、C・Dが各3ビット。確率で重み付けすると0.5×1+0.25×2+0.125×3+0.125×3=1.75ビットである。2.00は4種類が等確率の場合の値。1.50と2.25は重み付けの計算を誤ったもので、確率の偏りを正しく反映していない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(情報に関する理論)

問39|誤り検出

1ビットの冗長ビットを付加する方式で、1ビットの誤りは検出できるが誤った位置を特定できず訂正もできない。また2ビットが同時に誤ると検出できない。この方式はどれか。

  1. CRC
  2. ハミング符号
  3. 水平垂直パリティチェック
  4. パリティチェック
正解と解説
正解:D. パリティチェック

1ビットのパリティビットで1の個数の偶奇を検査するのがパリティチェックで、奇数個の誤りは検出できるが位置が分からず訂正できず、2ビット誤りは見逃す。CRCは生成多項式による除算の余りを付加しバースト誤りに強い。ハミング符号と水平垂直パリティチェックはいずれも1ビットの誤りを訂正できる。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(情報に関する理論)

問40|ハミング距離

2つの符号語 10110100 と 10011101 のハミング距離はどれか。

比較する2つの符号語
  符号語1  1 0 1 1 0 1 0 0  符号語2  1 0 0 1 1 1 0 1
  1. 2
  2. 3
  3. 4
  4. 5
正解と解説
正解:B. 3

ハミング距離は対応する位置で値が異なるビットの個数である。左から3ビット目(1と0)、5ビット目(0と1)、8ビット目(0と1)の3か所が異なるので距離は3となる。2、4、5はいずれも異なるビットの数え漏れや数えすぎであり、2つの符号語の排他的論理和に含まれる1の個数と一致しない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(情報に関する理論)

問41|訂正能力

ある誤り制御符号の符号語どうしの最小ハミング距離が4である。誤り訂正を行わずに検出だけを行う場合に保証できる検出ビット数と、誤り訂正を行う場合に保証できる訂正ビット数の組合せはどれか。

  1. 2ビット訂正、3ビット検出
  2. 2ビット訂正、4ビット検出
  3. 1ビット訂正、2ビット検出
  4. 1ビット訂正、3ビット検出
正解と解説
正解:D. 1ビット訂正、3ビット検出

最小ハミング距離がdのとき、検出だけを行えばd−1ビットまで検出でき、訂正を行う場合は(d−1)を2で割った商のビット数まで訂正できる。d=4なので検出は3ビット、訂正は1ビットとなる。1ビット訂正・2ビット検出はd=4で訂正と検出を同時に行う場合の値(本問は単独で行う場合を問うている)またはd=3の場合の値であり、2ビット訂正を含む選択肢はd≧5が必要である。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(情報に関する理論)

問42|文字コード

UTF-8の説明として適切なものはどれか。

  1. 7ビットで英数字と制御文字を表す文字コードで、日本語は表現できない
  2. 日本語を扱うために作られた文字コードで、1文字を必ず2バイトで表す
  3. Unicodeの符号化方式の一つで、1文字を1〜4バイトの可変長で表し、ASCII範囲の文字は1バイトで表す
  4. Unicodeの符号化方式の一つで、すべての文字を必ず4バイト固定長で表す
正解と解説
正解:C. Unicodeの符号化方式の一つで、1文字を1〜4バイトの可変長で表し、ASCII範囲の文字は1バイトで表す

UTF-8はUnicodeを可変長のバイト列に符号化する方式で、ASCII範囲は1バイトのため従来のASCIIテキストと互換性がある。7ビットで英数字と制御文字を表すのはASCII、日本語向けの符号化はシフトJISやEUC-JPなどで固定2バイトとも限らない。すべて4バイト固定長で表すのはUTF-32である。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(情報に関する理論)

問43|機械学習

正解ラベルが付いていないデータだけを用い、データ間の類似性に基づいてグループ分けや構造の発見を行う機械学習の方式はどれか。

  1. 教師あり学習
  2. 強化学習
  3. 転移学習
  4. 教師なし学習
正解と解説
正解:D. 教師なし学習

ラベルなしデータから構造を見つけるのは教師なし学習で、クラスタリングや次元削減が代表例である。教師あり学習は入力と正解ラベルの組から予測規則を学ぶ方式、強化学習は行動に対する報酬を手掛かりに方策を学ぶ方式、転移学習はある領域で学習した知識を別の領域に適用する手法であり、いずれも該当しない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(情報に関する理論)

問44|標本化

最高周波数が20kHzの音声信号を、標本化定理を満たす最低の標本化周波数(最高周波数の2倍)で標本化し、1標本あたり16ビットで量子化して2チャネル(ステレオ)で60秒間記録する。データ量は何Mバイトか。ここで、1Mバイト=10^6バイトとし、圧縮は行わないものとする。

  1. 4.8
  2. 9.6
  3. 19.2
  4. 38.4
正解と解説
正解:B. 9.6

標本化周波数は20k×2=40kHz。1標本16ビット=2バイト、2チャネルなので1秒あたり40000×2×2=160000バイト。60秒では9600000バイトで、1Mバイト=10^6バイトより9.6Mバイトとなる。4.8はモノラルまたは8ビット量子化とした場合の値、19.2と38.4はチャネル数や標本化周波数を過大に見積もった値である。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(通信に関する理論)

問45|制御方式

制御対象の出力をセンサで測定し、目標値との差が小さくなるように操作量を決める制御方式はどれか。

  1. シーケンス制御
  2. フィードフォワード制御
  3. フィードバック制御
  4. オープンループ制御
正解と解説
正解:C. フィードバック制御

出力を測って目標値との偏差を打ち消すように操作量を決めるのがフィードバック制御(閉ループ制御)である。シーケンス制御はあらかじめ定めた順序に従って各段階を進める制御、フィードフォワード制御は外乱を先に検出して出力を測る前に補正する制御、オープンループ制御は出力を検出せず操作量を与える制御であり、いずれも偏差に基づく制御ではない。

根拠:IPA 基本情報技術者試験 シラバス Ver.9.2 大分類1:基礎理論 中分類1:基礎理論(計測・制御に関する理論)

演習:この章の問題を解く

ランダム出題の演習ツールです(JavaScript が有効な場合に動きます)。上の「確認問題」はそのままでもすべて読めます。

※ 解説は学習用の情報提供です。最新の出題範囲・制度は必ずIPAの公式発表をご確認ください。
※ 出題はIPA公開のシラバスVer.9.2(2026年1月8日適用)に沿った仮の宿 学習室のオリジナル問題です。擬似言語の記述形式もIPA公開の仕様に合わせています。試験制度・実施要項はIPAの公式発表をご確認ください(2027年度春ごろに新試験制度へ移行予定)。