基本情報技術者 科目A 想定問題集
基礎理論の要点整理と想定問題
公式のシラバスの「テクノロジ系 大分類 1:基礎理論(中分類 1:基礎理論、中分類 2:アルゴリズムとプログラミング)」にあたる分野です。まず要点整理で全体をつかみ、下の演習で 59 問を 1 問ずつ解けます。答えると A〜D すべての解説が出ます。
この分野の小項目
- 1-1 離散数学(基数・数値表現・論理演算)(11 問) 基数と基数の変換、負の数や小数の表現、算術演算と精度(シフト演算・誤差)、集合と命題、論理演算(ド・モルガンの法則・真理値表)を理解し、担当する事項に適用する。
- 1-2 応用数学(確率・統計・待ち行列など)(6 問) 確率と統計、数値計算(行列など)、数値解析、グラフ理論、待ち行列理論(M/M/1 モデルの簡単な計算)、最適化問題(線形計画法・PERT など)の基本を理解し、担当する事項に適用する。
- 1-3 情報に関する理論(符号・オートマトン・AI)(11 問) 情報理論と符号理論、文字の表現、述語論理、形式言語、オートマトン、計算量、AI に関する技術(機械学習・ディープラーニングなど)、コンパイラ理論、プログラム言語論のあらましを理解する。
- 1-4, 1-5 通信・計測・制御に関する理論(5 問) 情報を伝送するための基本的な技術と方式の種類・特徴、信号処理の基本的な仕組み、制御の必要性と仕組み(フィードバック制御など)、代表的なセンサー・アクチュエーターの種類と動作特性を理解する。
- 2-1 データ構造(7 問) データ構造の考え方と基本的な仕組み、代表的なデータ構造(配列・リスト・スタック・キュー・木構造など)の種類と特徴を修得し、適用する。
- 2-2 アルゴリズム(10 問) アルゴリズムの基本的な考え方と流れ図による表現、代表的なアルゴリズム(探索・整列・再帰など)の基本と設計方法を修得し、適用する。
- 2-3, 2-4 プログラミングとプログラム言語(6 問) プログラミング作法とコーディング標準、プログラミングの基礎、文法の基本的な表記法、プログラム言語の種類・特徴・基本的な記述方法を修得し、適用する。
- 2-5 その他の言語(マークアップ言語など)(3 問) 代表的なマークアップ言語(HTML・XML など)の種類・特徴・記述方法の基本と、コンピュータで使用されるその他の言語(データ記述言語など)の特徴を理解する。
要点整理
離散数学(基数・数値表現・論理演算)
数値の表現は「手順」と「誤差の名前」を対で覚える
16 進数は 4 ビットで 1 桁、8 進数は 3 ビットで 1 桁に当たります。2 進数を 4 ビットずつ区切れば 16 進に、3 ビットずつ区切れば 8 進に直せます。16 進の 2 桁目の重みは 16 です。
負の数は2 の補数で表すのが基本です。全ビットを反転して 1 を足します。読むときも、先頭が 1 なら反転して 1 を足し、負の符号を付けます。8 ビットなら −128〜+127 を表せます。
シフト演算は、空いたビットに何を入れるかで区別します。論理シフトは常に 0 を入れ、算術シフトは右シフトで符号ビットと同じ値を入れます。算術右シフト 1 ビットは 2 で割ること、左シフト 1 ビットは 2 倍に当たります。
浮動小数点数は符号・指数・仮数で表します。指数部のビットを増やすと表せる範囲が広がり、仮数部を増やすと有効桁数(精度)が上がります。10 進の 0.1 は 2 進では循環小数になり、誤差が出ます。分母が 2 の累乗の 0.625(5/8)などは正確に表せます。
BCDは 10 進の 1 桁を 4 ビットで表すので、59 は 0101 1001 です。2 進数の 00111011 とは別物です。
論理演算は真理値表で確かめるのが確実です。ド・モルガンの法則は「not(A and B)=(not A)or(not B)」です。排他的論理和を重ねると、1 の個数が奇数のとき 1 になります。集合の人数は、和集合=A+B−共通部分で数えます。
| 現象 | 起きる場面 | 結果 |
|---|---|---|
| 桁落ち | 値の近い 2 つの数の引き算 | 有効数字の桁が大きく減る |
| 情報落ち | 大きさの大きく違う数の足し引き | 小さい方の値が結果に残らない |
| オーバーフロー | 表せる範囲の上限を超える | 正しい値を表せない |
| アンダーフロー | 絶対値が小さすぎる | 0 に近い値を表せない |
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/浮動小数点演算、その問題と制限(Python ドキュメント)
応用数学(確率・統計・待ち行列など)
確率・統計・待ち行列は式を 1 つずつ確実に
独立な事象が同時に起きる確率は掛け算です。不良率 2% の部品 2 個が両方良品の確率は 0.98×0.98 です。順番を区別しない選び方は組合せ nCr、区別するなら順列 nPr を使います。
代表値は目的で選びます。極端な値があるときは、平均値より中央値が実態に近くなります。相関があっても因果関係とは限らず、別の要因による擬似相関を疑います。ばらつきの大きさは、分散の正の平方根である標準偏差で表します。
待ち行列理論の M/M/1 モデルでは、利用率 ρ=平均到着率×平均サービス時間です。サービスが始まるまでの平均待ち時間は ρ÷(1−ρ)×平均サービス時間、来てから終わるまでの時間はそれに平均サービス時間を足します。ρ が 1 に近づくと待ち時間は急に伸びます。
線形計画法は、制約の式が作る領域の頂点を調べ、目的の式が最大(最小)になる点を探します。頂点ごとに利益を計算して比べれば確実です。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/中心的な傾向を捉える(総務省統計局 なるほど統計学園)/受講者からの質問事項及び講師の回答(擬似相関の例・総務省統計局 統計データ利活用セミナー)
情報に関する理論(符号・オートマトン・AI)
情報理論・形式言語・AI は「何をするものか」で区別する
情報量は確率 p の事象で −log₂p ビットです。8 種類が同じ確率なら 3 ビットになります。ハフマン符号は出現頻度の高い記号に短い符号を割り当てて圧縮します。
オートマトンは状態遷移表を 1 文字ずつたどれば答えが出ます。正規表現では * が直前の要素の 0 回以上の繰返しを表し、括弧はまとまりを作ります。
逆ポーランド表記法は演算子を項の後ろに置きます。(A+B)×(C−D) は AB+CD−× です。計算量が O(n²) なら、データが 3 倍で手間は 9 倍と見積もります。
コンパイラは字句解析→構文解析→意味解析→最適化→コード生成の順に処理します。複数の言語の文字を一つの体系で扱うにはUnicodeを使います。
機械学習は、正解付きのデータで学ぶ教師あり学習、正解の無いデータから構造を見つける教師なし学習、報酬で方策を学ぶ強化学習に分かれます。訓練データにだけよく当たる状態が過学習、誤差を勾配で戻して重みを調整する方法がバックプロパゲーションです。多層のニューラルネットワークを使う手法がディープラーニング(深層学習)です。
| 学習の種類 | 使うデータ | 代表的な用途 |
|---|---|---|
| 教師あり学習 | 正解ラベル付きのデータ | 回帰・分類 |
| 教師なし学習 | 正解ラベルの無いデータ | クラスタリング・次元削減 |
| 強化学習 | 行動に対する報酬・罰則 | 報酬を最大にする方策の学習 |
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/機械学習とは(Google 機械学習の概要)/過学習(Google 機械学習集中講座)/ニューラル ネットワーク: バックプロパゲーション(Google 機械学習集中講座)
通信・計測・制御に関する理論
通信・制御は方式の名前と働きを結び付ける
伝送路は、一方向だけの単方向、交互に送る半二重、同時に送受信できる全二重に分かれます。
パリティチェックは 1 の個数の偶奇で誤りを検出しますが、位置は分からず訂正できません。2 ビットの誤りは見逃します。1 ビットの誤りを訂正したいときはハミング符号を使います。
PCMのデータ量は、標本化周波数×量子化ビット数×秒数で求めます。8kHz・8 ビットなら 64,000 ビット/秒で、バイトにするには 8 で割ります。
フィードバック制御は結果を測って目標との差を直し、フィードフォワード制御は外乱を先に捉えて結果に出る前に打ち消します。センサーは測る量で区別し、温度にはサーミスタ、回転にはジャイロセンサーを使います。
データ構造
データ構造は「出し入れの順」と「たどり方」で選ぶ
スタックは後に入れたものから、キューは先に入れたものから取り出します。操作を順に書き出して確かめると、取り違えを防げます。
途中への追加・削除が多いなら線形リスト、最小値を繰り返し取り出すならヒープが向きます。配列は要素番号で直接アクセスできますが、途中への追加では後ろをずらす必要があります。
2 次元配列の番地は、前にある要素の数×1 要素の大きさ+先頭番地です。行の順に置くなら、前にある要素は「行番号×列数+列番号」個です(要素番号が 0 から始まる場合)。
2 分探索木は左に小さい値、右に大きい値を置きます。中間順でたどると小さい順に出ます。先行順は節が先、後行順は節が後です。
| 目的 | 選ぶ構造 | 理由 |
|---|---|---|
| 届いた順に処理 | キュー | 先に入れたものを先に出す |
| 直前の状態に戻す | スタック | 後に入れたものを先に出す |
| 途中の追加・削除が多い | 線形リスト | ポインタの付け替えで済む |
| 最小値を何度も取り出す | ヒープ | 最小の要素が常に根にある |
| 値を小さい順に取り出す | 2 分探索木 | 中間順でたどると昇順 |
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/heapq --- ヒープキューアルゴリズム(Python ドキュメント)
アルゴリズム
アルゴリズムは手でトレースして確かめる
2 分探索法は比較のたびに範囲が半分になり、1,000 件なら最大 10 回で済みます。線形探索は最大で件数と同じ回数がかかります。ハッシュ表探索法では、違うキーが同じ位置になる衝突に注意します。
整列法は 1 回目の動きで見分けます。バブルソートは隣どうしを交換して最大値を末尾へ送り、選択ソートは最小値を先頭と交換し、挿入ソートは整列済みの部分に差し込みます。クイックソートは基準値で分ける分割統治法です。
グラフでは、段数の少ない順に調べるなら幅優先探索、深く進んでから戻るなら深さ優先探索です。重み付きの最短経路はダイクストラ法で求めます。
擬似言語の問題は、変数の値を表に書きながら 1 行ずつ追います。for の範囲の端の値(終わりの値も実行されるか)、while の条件が偽になる時点、再帰の終了条件に特に注意します。処理の手順を記号と矢印で表した流れ図も、同じように 1 ステップずつたどります。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/Shortest Paths(NetworkX ドキュメント)
プログラミングとプログラム言語
擬似言語の記述形式と文法の表記法
IPA の擬似言語では、「←」が代入、mod が剰余、≠ が「等しくない」を表します。if と elseif は上から評価し、最初に真になった条件の処理だけを実行します。後の条件が真でも実行されません。
while は前判定(条件が真の間くり返す)、do ~ while は後判定(1 回は必ず実行する)です。配列は要素番号を [ ] で指定し、{ } で内容を表します。
BNFは「::=」で置き換えの規則を、「|」で選択を表します。<数> ::= <数字> | <数> <数字> のように自分自身を使う規則で、1 文字以上の並びを表せます。
値呼出しでは手続に値の写しが渡り、呼出し元の変数は変わりません。オブジェクト指向では、引数の違う同名メソッドを並べるオーバーロードと、親クラスのメソッドを子クラスで置き換えるオーバーライドを区別します。
| 記述 | 意味 |
|---|---|
| 変数名 ← 式 | 変数に式の値を代入する |
| if ~ elseif ~ else ~ endif | 上から評価し、最初に真になった処理だけを行う |
| while (条件式) ~ endwhile | 前判定の繰返し(真の間くり返す) |
| do ~ while (条件式) | 後判定の繰返し(処理を先に 1 回行う) |
| for (制御記述) ~ endfor | 制御記述に基づいてくり返す |
| mod | 剰余算 |
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/試験で使用する情報技術に関する用語・プログラム言語など Ver.5.1 別紙 2 擬似言語の記述形式(IPA)/Passing Information to a Method or a Constructor(Oracle Java Tutorials)
その他の言語(マークアップ言語など)
マークアップ言語とデータ記述言語の役割分担
HTML は Web ページの構造を、CSS は色や余白などの見た目を表します。構造と表示を分けておくと、共通の CSS を直すだけで全ページの見た目を変えられます。
XMLは利用者がタグを定義でき、データ交換に使われます。JSONはオブジェクトを { }、配列を [ ] で表すテキスト形式で、Web API で広く使われます。
UMLはオブジェクト指向設計のための図の表記法で、データ交換の形式ではありません。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/Cascading Style Sheets(W3C)/RFC 8259 The JavaScript Object Notation (JSON) Data Interchange Format
演習(59 問)
結果はこのブラウザに保存され、ハブの「自分の成績」と弱点モードに使われます。
第 1 問 / 59 問
問題を読み込んでいます…
全問と解説の一覧
正解と解説は折りたたんであります。先に自分で考えてから開いてください。
全 59 問
離散数学(基数・数値表現・論理演算)
監視ツールのログに、エラー番号が 16 進数で 2F と記録されていた。これを 10 進数に直した値は?
A. 35 B. 47 C. 31 D. 215
この問題へのリンク答えと解説
正解: B 【A(不正解)】 ? 2 桁目を 10 倍し、F を 15 として足した値です。 16 進数の 2 桁目の重みは 10 ではなく 16 である。2×10+15=35 は重みの取り違え。 【B(正解)】 ? 2 桁目を 16 倍し、F を 15 として足した値です。 16 進数の 2 桁目の重みは 16。2F=2×16+15=47 となる。 【C(不正解)】 ? 16 進数の 1F を 10 進数に直した値です。 1F=1×16+15=31。2F は 1F より 16 大きい。 【D(不正解)】 ? 2 と、F を 15 に置き換えた数字を並べた値です。 桁ごとに 10 進の数字へ置き換えて並べても、基数の変換にはならない。
8 ビットの2 の補数で表したセンサー値 11111010 を受け取った。10 進数ではいくつか?
A. −5 B. −122 C. 250 D. −6
この問題へのリンク答えと解説
正解: D 【A(不正解)】 ? 各ビットを反転しただけで読んだ値です。 反転すると 00000101=5 だが、2 の補数では反転後に 1 を足す。−5 は 1 の補数として読んだ値である。 【B(不正解)】 ? 先頭を符号、残り 7 ビットを絶対値と読んだ値です。 1111010=122 を絶対値とみるのは符号と絶対値による表現で、2 の補数の読み方ではない。 【C(不正解)】 ? 符号を考えない 8 ビットの数として読んだ値です。 符号なしなら 128+64+32+16+8+2=250 だが、2 の補数では先頭の 1 は負を表す。 【D(正解)】 ? 各ビットを反転し、1 を足して負の符号を付けた値です。 反転して 00000101、1 を足して 00000110=6。先頭が 1 なので負で、−6 となる。
経理システムで小数を 2 進の浮動小数点数で扱う。次の 10 進小数のうち、2 進数で誤差なく有限の桁で表せるものは?
A. 0.625 B. 0.1 C. 0.2 D. 0.3
この問題へのリンク答えと解説
正解: A 【A(正解)】 ? 分数で表すと 5/8 になる値です。 5/8 は分母が 2 の累乗なので、2 進で 0.101 と有限の桁で表せる。 【B(不正解)】 ? 分数で表すと 1/10 になる値です。 1/10 は 2 進では 0.000110011… と循環し、有限の桁では近似値になる。 【C(不正解)】 ? 分数で表すと 1/5 になる値です。 分母に 5 が残るため、2 進では循環小数になる。 【D(不正解)】 ? 分数で表すと 3/10 になる値です。 分母に 5 が残るため、2 進では有限の桁で表せない。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/浮動小数点演算、その問題と制限(Python ドキュメント)
8 ビットの2 の補数で −20 を表す 11101100 を、右へ 2 ビット算術シフトした。結果を 10 進数で表すと?
A. 59 B. −80 C. −5 D. 5
この問題へのリンク答えと解説
正解: C 【A(不正解)】 ? 空いた上位ビットに 0 を入れた結果です。 これは論理シフトの結果 00111011=59 で、符号が失われる。 【B(不正解)】 ? 左へ 2 ビットずらした結果です。 左へ 2 ビットのシフトは 4 倍に当たり、−20×4=−80。向きが逆である。 【C(正解)】 ? 空いた上位ビットに、符号ビットと同じ 1 を入れた結果です。 結果は 11111011。反転して 00000100、1 を足すと 00000101 なので −5。−20÷4 と一致する。 【D(不正解)】 ? −20 を 4 で割った値の符号を変えた値です。 算術シフトは符号ビットを保つため、結果は負のままになる。
測定値 1.234567 から 1.234561 を引いたら、結果の有効数字が 1 桁しか残らなかった。この誤差の名前は?
A. 情報落ち B. オーバーフロー C. アンダーフロー D. 桁落ち
この問題へのリンク答えと解説
正解: D 【A(不正解)】 ? 大きさの大きく違う数を足し引きしたときに起きる誤差です。 小さい方の値が結果に反映されない現象で、今回の 2 つの値は大きさがほぼ同じである。 【B(不正解)】 ? 表せる範囲の上限を超えることです。 結果は 0.000006 という小さな値で、範囲の上限を超えていない。 【C(不正解)】 ? 絶対値が小さすぎて表せなくなることです。 0.000006 は浮動小数点数で十分に表せる大きさで、問題は有効桁が減ったことである。 【D(正解)】 ? 値の近い 2 つの数の引き算で起きる誤差です。 上位の桁が打ち消し合い、有効数字が 7 桁から 1 桁に減った。典型的な桁落ちである。
送料無料の条件は「在庫あり かつ 会員」である。この条件を満たさない場合を表す式として、同じ意味になるものは?
A. (not 在庫あり) and (not 会員) B. (not 在庫あり) or (not 会員) C. 在庫あり or 会員 D. (not 在庫あり) and 会員
この問題へのリンク答えと解説
正解: B 【A(不正解)】 ? それぞれを否定し、「かつ」でつないだ式です。 これは not(A or B) と同じで、両方とも欠ける場合しか表さない。 【B(正解)】 ? それぞれを否定し、「または」でつないだ式です。 ド・モルガンの法則により not(A and B)=(not A) or (not B)。どちらか一方でも欠ければ条件を満たさない。 【C(不正解)】 ? 否定を付けず、「または」でつないだ式です。 否定が無く、元の条件を緩めただけの式になる。 【D(不正解)】 ? 在庫だけを否定し、会員はそのまま残した式です。 会員で在庫なしの場合しか表さず、非会員の場合が漏れる。
3 つの入力 A、B、C のうち、1 である入力の個数が奇数のときだけ出力が 1 になる回路を作る。この回路を表す論理式は?
A. (A and B) or C B. A or B or C C. A xor B xor C D. not (A and B and C)
この問題へのリンク答えと解説
正解: C 【A(不正解)】 ? A と B の論理積に、C との論理和を取った式です。 A=1・B=0・C=0 のとき 0 になる。1 の個数は 1(奇数)なので、条件に合わない。 【B(不正解)】 ? どれか 1 つでも 1 なら 1 になる式です。 A=B=1・C=0 でも 1 になるが、1 の個数は 2(偶数)である。 【C(正解)】 ? 2 入力ずつ排他的論理和を重ねた式です。 XOR を重ねると、1 の個数が奇数のとき 1 になる。例えば A=B=C=1 なら 1、A=B=1・C=0 なら 0 になる。 【D(不正解)】 ? 3 入力の論理積を否定した式です。 A=B=C=0 で 1 になるが、1 の個数は 0(偶数)である。
社員 100 人に聞くと、Java を学んだ人は 60 人、Python は 50 人、両方は 25 人だった。どちらも学んでいない人は何人か?
A. 15 人 B. 40 人 C. 25 人 D. 50 人
この問題へのリンク答えと解説
正解: A 【A(正解)】 ? 和集合の人数を全体から引いた値です。 和集合=60+50−25=85 人。100−85=15 人となる。 【B(不正解)】 ? Java を学んでいない人の人数です。 100−60=40 人には、Python だけを学んだ 50−25=25 人が含まれる。 【C(不正解)】 ? 両方を学んだ人の人数です。 25 人は積集合の人数で、どちらも学んでいない人ではない。 【D(不正解)】 ? Python を学んでいない人の人数です。 100−50=50 人には、Java だけを学んだ 60−25=35 人が含まれる。
レジの金額表示にBCDを使う。10 進数の 59 を 8 ビットの BCD で表すと?
A. 0011 1011 B. 1001 0101 C. 0101 1001 D. 0101 1000
この問題へのリンク答えと解説
正解: C 【A(不正解)】 ? 59 全体を 1 つの 2 進数に変換した並びです。 59=32+16+8+2+1 で 00111011。これは純粋な 2 進数である。 【B(不正解)】 ? 各桁の 4 ビットを逆の順に並べた並びです。 9 と 5 の順が逆で、上の桁の 5(0101)を先に置いていない。1001 0101 は 95 の BCD になる。 【C(正解)】 ? 10 進の各桁を 4 ビットずつ 2 進数にした並びです。 5=0101、9=1001 を上の桁から並べて 0101 1001 となる。 【D(不正解)】 ? 下位 4 ビットを 1000 にした並びです。 1000 は 8 を表し、これは 58 の BCD になる。
浮動小数点数の形式を、指数部のビット数を増やしたものに変えた。主に何が変わるか?
A. 表せる数の大きさの範囲が広がる B. 有効桁数が増えて精度が上がる C. 負の数を表せるようになる D. 10 進の 0.1 を誤差なく表せる
この問題へのリンク答えと解説
正解: A 【A(正解)】 ? 数の桁の大きさ(2 の何乗か)に関わる変化です。 指数部が広いほど、とても大きな数や小さな数まで表せる。有効桁数は仮数部で決まる。 【B(不正解)】 ? 仮数部を増やしたときに起きる変化です。 精度(有効桁数)は仮数部のビット数で決まり、指数部では変わらない。 【C(不正解)】 ? 符号部が担う働きです。 正か負かは符号部で表し、指数部とは別である。 【D(不正解)】 ? 2 進で循環小数になる値の扱いです。 0.1 は 2 進で循環小数になり、どの形式でも有限の桁では近似になる。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/浮動小数点演算、その問題と制限(Python ドキュメント)
8 ビットの値 1011 0110 を 16 進数で表すと?
A. 6B B. 182 C. 266 D. B6
この問題へのリンク答えと解説
正解: D 【A(不正解)】 ? 区切った 2 組の順を入れ替えた値です。 上位の 4 ビット 1011 が先に来るので、6B ではない。 【B(不正解)】 ? 10 進数に直した値です。 128+32+16+4+2=182 で、これは 10 進の表記である。 【C(不正解)】 ? 3 ビットずつ区切った 8 進数の値です。 10 110 110 と区切ると 8 進の 266 で、16 進ではない。 【D(正解)】 ? 4 ビットずつ区切って、16 進の 1 桁に置き換えた値です。 1011=11=B、0110=6 なので B6 となる。
応用数学(確率・統計・待ち行列など)
不良率 2% の部品を無作為に 2 個取り出す。各部品は独立とする。2 個とも良品である確率は?
A. 0.96 B. 0.9604 C. 0.98 D. 0.0004
この問題へのリンク答えと解説
正解: B 【A(不正解)】 ? 2 個分の不良率 4% を 1 から引いた値です。 1−0.04 は、2 個とも不良の場合を二重に引いた値で、0.0004 だけずれる。 【B(正解)】 ? 良品の確率を 2 回掛けた値です。 良品の確率は 0.98。独立なので 0.98×0.98=0.9604 となる。 【C(不正解)】 ? 1 個が良品である確率です。 1 個分の確率で、2 個とも良品である確率ではない。 【D(不正解)】 ? 2 個とも不良品である確率です。 0.02×0.02=0.0004 は、2 個とも不良の確率である。
6 人のチームから、当番を 2 人選ぶ。2 人の順番は区別しない。選び方は何通りか?
A. 30 通り B. 15 通り C. 36 通り D. 12 通り
この問題へのリンク答えと解説
正解: B 【A(不正解)】 ? 順列の数 6P2 です。 6×5=30 は順番を区別した数で、同じ 2 人の組を 2 回数えている。 【B(正解)】 ? 組合せの数 6C2 です。 6C2=(6×5)÷(2×1)=15 通り。 【C(不正解)】 ? 6 を 2 乗した数です。 同じ人を 2 回選ぶ場合まで含めた数になる。 【D(不正解)】 ? 6 に 2 を掛けた数です。 人数と選ぶ人数を掛けても、選び方の数にはならない。
窓口を M/M/1 の待ち行列理論で考える。客は平均 1 分に 1 人来て、1 人の処理に平均 30 秒かかる。処理が始まるまでの平均待ち時間は?
A. 60 秒 B. 15 秒 C. 90 秒 D. 30 秒
この問題へのリンク答えと解説
正解: D 【A(不正解)】 ? 平均待ち時間に平均処理時間を足した値です。 30+30=60 秒は、来てから処理が終わるまでの平均時間に当たる。 【B(不正解)】 ? 利用率に平均処理時間を掛けた値です。 0.5×30=15 秒で、式の (1−利用率) で割る部分を落としている。 【C(不正解)】 ? 平均到着間隔に平均処理時間を足した値です。 60+30=90 秒は、待ち行列の式に基づかない値である。 【D(正解)】 ? 利用率÷(1−利用率)に、平均処理時間を掛けた値です。 利用率は 30÷60=0.5。0.5÷(1−0.5)×30=30 秒となる。
5 人の月の残業時間は 3、5、7、8、100 時間だった。極端な値に左右されにくい代表値で報告したい。報告する値は?
A. 中央値の 7 時間 B. 平均値の 24.6 時間 C. 範囲の 97 時間 D. 最大値の 100 時間
この問題へのリンク答えと解説
正解: A 【A(正解)】 ? 大きさの順に並べて真ん中に来る値です。 並べると 3、5、7、8、100 で、3 番目の 7 時間が中央値。100 時間に引っ張られない。 【B(不正解)】 ? 合計を人数で割った値です。 123÷5=24.6 時間で、100 時間の 1 人に強く引っ張られている。 【C(不正解)】 ? 最大値から最小値を引いた値です。 100−3=97 はばらつきの大きさを表す値で、代表値ではない。 【D(不正解)】 ? データの中で最も大きい値です。 極端な値そのもので、全体の傾向を表さない。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/中心的な傾向を捉える(総務省統計局 なるほど統計学園)
月別データで、アイスの売上と水難事故の件数に強い正の相関が見つかった。最も適切な解釈は?
A. 売上が増えると事故が増える因果関係がある B. 相関が強いので、事故件数は売上だけで予測できる C. 気温など別の要因による擬似相関の可能性がある D. 正の相関なので、片方が増えると他方は減る
この問題へのリンク答えと解説
正解: C 【A(不正解)】 ? 相関をそのまま原因と結果と読む見方です。 相関係数だけでは、因果の有無も向きも決められない。 【B(不正解)】 ? 1 つの変数だけで予測を組み立てる見方です。 見せかけの関係に頼った予測は、条件が変わると外れやすい。 【C(正解)】 ? 第 3 の要因が 2 つの値を同時に動かす場合の見方です。 相関があっても因果関係があるとは限らない。気温が上がると両方が増える、という別の要因を疑う。 【D(不正解)】 ? 相関の符号の意味についての見方です。 正の相関は、片方が増えると他方も増える傾向を表す。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/複数の変数の関係性を見る(総務省統計局 なるほど統計学園)/受講者からの質問事項及び講師の回答(擬似相関の例・総務省統計局 統計データ利活用セミナー)
製品 X は 1 個 3 万円、Y は 2 万円の利益。材料は X が 2kg、Y が 1kg で計 10kg まで使える。作業はどちらも 1 個 1 時間で計 8 時間まで。利益の最大は?
A. 16 万円 B. 15 万円 C. 24 万円 D. 18 万円
この問題へのリンク答えと解説
正解: D 【A(不正解)】 ? Y だけを 8 個作る場合の利益です。 材料は 8kg で 2kg 余る。交点の組合せの方が利益が大きい。 【B(不正解)】 ? X だけを 5 個作る場合の利益です。 材料は使い切るが、作業時間が 3 時間余る。交点の組合せに及ばない。 【C(不正解)】 ? X を 8 個作れると仮定した利益です。 X を 8 個作るには材料が 16kg 必要で、10kg の制約を超える。 【D(正解)】 ? X を 2 個、Y を 6 個作る場合の利益です。 制約 2x+y≦10 と x+y≦8 の交点は x=2、y=6。3×2+2×6=18 万円で、他の頂点 (5,0) の 15 万円や (0,8) の 16 万円より大きい。
情報に関する理論(符号・オートマトン・AI)
8 種類の記号が同じ確率で出る。そのうち 1 つの記号を受け取ったときの情報量は何ビットか?
A. 8 ビット B. 3 ビット C. 1/8 ビット D. 2 ビット
この問題へのリンク答えと解説
正解: B 【A(不正解)】 ? 記号の種類の数そのものです。 種類の数は情報量ではない。確率の 2 を底とする対数を取って求める。 【B(正解)】 ? 確率 1/8 について −log₂ を取った値です。 情報量=−log₂(1/8)=3 ビット。3 ビットあれば 8 通りを区別できる。 【C(不正解)】 ? 記号 1 つが出る確率です。 確率そのもので、情報量は −log₂p で求める。 【D(不正解)】 ? 4 種類を区別するのに要るビット数です。 2 ビットでは 4 通りしか区別できず、8 種類には足りない。
ログの文字列では、特定の記号がとても多く出る。出やすい記号に短い符号を割り当ててデータ量を減らしたい。使う方式は?
A. ハミング符号 B. パリティチェック C. ハフマン符号 D. BCD
この問題へのリンク答えと解説
正解: C 【A(不正解)】 ? 検査用のビットを足し、化けたビットを直せる符号です。 1 ビットの誤り訂正が目的で、検査用ビットの分だけデータ量はむしろ増える。 【B(不正解)】 ? 1 の個数でデータの化けを見つける方法です。 誤りの検出のための方法で、データの圧縮には使えない。 【C(正解)】 ? 出現頻度に応じて符号の長さを変える方式です。 頻度の高い記号ほど短い符号を使い、全体の平均の長さを短くできる。 【D(不正解)】 ? 10 進の 1 桁を 4 ビットで表す方式です。 数字の表し方の一つで、頻度に応じた圧縮はしない。
次のオートマトンは状態 E から始まり、入力を読み終えたとき E にいれば受理する。 E で 0 → E、E で 1 → O O で 0 → O、O で 1 → E 受理される入力は?
A. 0110 B. 1011 C. 1000 D. 0111
この問題へのリンク答えと解説
正解: A 【A(正解)】 ? 1 を 2 回含む入力です。 1 を読むたびに E と O が入れ替わる。1 が 2 回なので E に戻り、受理される。 【B(不正解)】 ? 1 を 3 回含む入力です。 1 を 3 回読むと O で終わるため、受理されない。 【C(不正解)】 ? 1 を 1 回含む入力です。 1 を 1 回読んで O に移り、0 では O のままなので受理されない。 【D(不正解)】 ? 0 で始まり、1 を 3 回含む入力です。 最初の 0 では E のまま。続く 1 が 3 回で O に終わるため、受理されない。
正規表現 a(bc)*d で、* は直前の要素の 0 回以上の繰返しを表す。この表現に一致する文字列は?
A. abd B. abccd C. abcbcd D. acbd
この問題へのリンク答えと解説
正解: C 【A(不正解)】 ? b だけを 1 回はさんだ文字列です。 繰り返す単位は bc の組で、b だけでは一致しない。 【B(不正解)】 ? bc の後に c が余分に続く文字列です。 bc の次に c が残り、d の前の形が合わない。 【C(正解)】 ? bc を 2 回繰り返した文字列です。 a の後に bc が 2 回、最後に d が来るので一致する。 【D(不正解)】 ? c と b の順が入れ替わった文字列です。 繰返しの単位は b→c の順で、cb とは一致しない。
式 (A+B)×(C−D) を逆ポーランド表記法で表したものは?
A. AB+CD−× B. AB+C×D− C. ABCD−×+ D. ×+AB−CD
この問題へのリンク答えと解説
正解: A 【A(正解)】 ? 演算子を 2 つの項の後ろに置き、括弧ごとにまとめた形です。 A+B は AB+、C−D は CD−。その 2 つを掛けて AB+CD−× となる。 【B(不正解)】 ? (A+B)×C から D を引く式を表す形です。 (A+B)×C−D を表し、括弧の範囲が元の式と違う。 【C(不正解)】 ? A+B×(C−D) を表す形です。 先に B と (C−D) を掛けており、元の式と計算の順が違う。 【D(不正解)】 ? 演算子を項の前に置く形です。 これは前置記法(ポーランド記法)で、逆ポーランド表記法ではない。
計算量が O(n²) の整列処理で、1,000 件に 2 秒かかった。3,000 件では、およそ何秒かかると見込めるか?
A. 6 秒 B. 54 秒 C. 9 秒 D. 18 秒
この問題へのリンク答えと解説
正解: D 【A(不正解)】 ? 件数の比 3 をそのまま掛けた値です。 これは O(n) の場合の見込みで、O(n²) では足りない。 【B(不正解)】 ? 件数の比 3 を 3 乗して掛けた値です。 これは O(n³) の場合の見込みになる。 【C(不正解)】 ? 件数の比 3 の 2 乗そのものです。 9 は倍率で、元の 2 秒を掛け忘れている。 【D(正解)】 ? 件数の比 3 を 2 乗して掛けた値です。 件数が 3 倍なら手間は 3²=9 倍。2×9=18 秒と見込める。
正解ラベルの無い顧客の購買データから、似た顧客どうしのグループを見つけたい。当てはまる学習の種類は?
A. 教師あり学習 B. 教師なし学習 C. 強化学習 D. 転移学習
この問題へのリンク答えと解説
正解: B 【A(不正解)】 ? ラベル付きのデータで学ぶ学習です。 回帰や分類に使い、事前に正解ラベルを用意する必要がある。 【B(正解)】 ? ラベルの無いデータからパターンを見つける学習です。 クラスタリングは教師なし学習の代表例で、グループはデータから見つかる。 【C(不正解)】 ? 行動への報酬をもとに方策を学ぶ学習です。 環境の中で報酬を最大にする行動を学ぶ方法で、グループ分けとは違う。 【D(不正解)】 ? 別の課題で学んだモデルを生かす手法です。 学習済みのモデルを新しい課題に流用する手法で、ラベルの無いグループ分けの方法ではない。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/機械学習とは(Google 機械学習の概要)
画像分類モデルが、訓練データではほぼ全問当たるのに、新しいデータでは正解率が大きく下がった。この状態は?
A. 勾配消失問題 B. 過学習 C. 次元削減 D. 強化学習
この問題へのリンク答えと解説
正解: B 【A(不正解)】 ? 入力に近い層の学習が進まなくなる問題です。 学習そのものが進まない問題で、訓練データで高い精度が出ている状況とは合わない。 【B(正解)】 ? 訓練データに合わせすぎた状態です。 訓練データを覚え込むほど合わせ、新しいデータへの予測が悪くなっている。 【C(不正解)】 ? データの特徴の数を減らす手法です。 手法の名前で、訓練データと新しいデータの性能差を表す言葉ではない。 【D(不正解)】 ? 報酬をもとに方策を学ぶ学習です。 学習の種類の名前で、性能差の現象を表す言葉ではない。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/過学習(Google 機械学習集中講座)/ニューラル ネットワーク: バックプロパゲーション(Google 機械学習集中講座)
ニューラルネットワークの学習で、出力と正解との誤差が小さくなるよう、勾配を使って出力側から重みを調整していく手法は?
A. 活性化関数 B. 交差検証 C. エキスパートシステム D. バックプロパゲーション
この問題へのリンク答えと解説
正解: D 【A(不正解)】 ? 各ユニットの出力の形を決める関数です。 ReLU などの関数で、重みを調整する手法そのものではない。 【B(不正解)】 ? データを分けて性能を繰り返し測る方法です。 モデルの評価の方法で、重みの更新には使わない。 【C(不正解)】 ? 専門家の知識と推論で判断する AI です。 知識ベースと推論エンジンで判断する仕組みで、重みの学習は行わない。 【D(正解)】 ? 誤差逆伝播法とも呼ぶ学習の手法です。 損失が小さくなるよう、勾配を使ってモデルの重みを調整する。ニューラルネットワークで最も一般的な学習の方法である。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/ニューラル ネットワーク: バックプロパゲーション(Google 機械学習集中講座)
コンパイラが原始プログラムを目的プログラムに変換する。主な段階の順として適切なものは?
A. 字句解析→構文解析→意味解析→最適化→コード生成 B. 構文解析→字句解析→意味解析→コード生成→最適化 C. 意味解析→字句解析→構文解析→最適化→コード生成 D. 字句解析→意味解析→コード生成→構文解析→最適化
この問題へのリンク答えと解説
正解: A 【A(正解)】 ? トークンに分けてから構造を調べる流れです。 文字の並びをトークンに分け(字句解析)、文法に沿って構造を作り、意味を確かめ、最適化してコードを作る。 【B(不正解)】 ? 構造を先に調べ、最適化を最後に置く流れです。 構文解析はトークンの列を材料にするため、字句解析より前には行えない。 【C(不正解)】 ? 意味の確認を最初に置く流れです。 意味を調べるには、先にプログラムの構造が分かっている必要がある。 【D(不正解)】 ? コード生成の後に構文を調べる流れです。 文法に合うか分からないままでは、コードは作れない。
日本語・英語・韓国語のメッセージを、1 つの文字コードの体系でまとめて扱いたい。適した文字コードは?
A. ASCII コード B. シフト JIS コード C. Unicode D. EUC-JP
この問題へのリンク答えと解説
正解: C 【A(不正解)】 ? 英数字と記号を 7 ビットで表すコードです。 英数字と記号だけで、日本語や韓国語の文字は表せない。 【B(不正解)】 ? 日本語の文字を表すためのコードです。 日本語向けのコードで、韓国語のハングルはまとめて扱えない。 【C(正解)】 ? 世界の多くの文字に番号を割り当てた体系です。 Unicode は世界の文字を一つの体系で扱える。UTF-8 はその符号化方式の一つである。 【D(不正解)】 ? UNIX 系で使われてきた日本語用のコードです。 日本語向けの符号化で、多くの言語をまとめて扱う目的には向かない。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/What is Unicode?(Unicode Consortium)
通信・計測・制御に関する理論
工場の装置とサーバの間で、送信と受信を同時に行える伝送方式にしたい。当てはまる方式は?
A. 半二重 B. 単方向 C. 時分割多重(TDM) D. 全二重
この問題へのリンク答えと解説
正解: D 【A(不正解)】 ? 両方向に送れるが、同時には送れない方式です。 向きを切り替えて交互に送るため、同時には送受信できない。 【B(不正解)】 ? 一方向だけに送る方式です。 片方からもう片方へ送るだけで、逆向きには送れない。 【C(不正解)】 ? 1 本の回線を時間で区切り、複数の通信で使う方式です。 多重化の方式で、送受信を同時にできるかどうかとは別の話である。 【D(正解)】 ? 両方向に同時に送れる方式です。 送信と受信を同時に行えるので、条件に合う。
偶数パリティを付けて送られた 8 ビット 1101 0110 を受信した(パリティビットを含む)。受信側の判断として適切なものは?
A. 1 の個数が偶数なので、誤りは無いと判断する B. 1 の個数が奇数なので、誤りがあると判断する C. 誤りのあるビットの位置を特定して直す D. 2 ビットの誤りがあると判断する
この問題へのリンク答えと解説
正解: B 【A(不正解)】 ? 1 の個数を偶数と数えた場合の判断です。 数え直すと 1 は 5 個で、奇数である。 【B(正解)】 ? 1 の個数を 5 と数えた場合の判断です。 1 の個数は 5 で奇数。偶数パリティなら偶数のはずなので、誤りを検出できる。 【C(不正解)】 ? 化けたビットを直すところまで行う判断です。 パリティビット 1 つでは検出しかできず、位置は分からない。訂正にはハミング符号などを使う。 【D(不正解)】 ? 化けたビットの数を決める判断です。 パリティでは誤りの数は分からない。2 ビットの誤りなら 1 の個数は偶数のままで、検出もできない。
空調の制御で、ドアが開いて外気が入ることをセンサーで先に捉え、室温が変わる前に出力を上げたい。この制御の方式は?
A. フィードバック制御 B. フィルタリング C. フィードフォワード制御 D. A/D 変換
この問題へのリンク答えと解説
正解: C 【A(不正解)】 ? 結果を測って目標との差をなくす制御です。 室温が変わってから差を直すため、変わる前に手を打つことはできない。 【B(不正解)】 ? 信号から雑音などの不要な成分を取り除く処理です。 信号処理の技術で、外乱を見越して操作量を変える制御方式ではない。 【C(正解)】 ? 外乱を先に捉えて操作量を変える制御です。 外乱が結果に表れる前に打ち消す方式で、今回の目的に合う。 【D(不正解)】 ? アナログ信号をデジタル値に変える処理です。 センサーの値をコンピュータで扱うための変換で、制御の方式そのものではない。
室温を測るため、温度によって電気抵抗が大きく変わる素子を使いたい。当てはまる部品は?
A. サーミスタ B. ホール素子 C. ジャイロセンサー D. ひずみゲージ
この問題へのリンク答えと解説
正解: A 【A(正解)】 ? 温度に応じて抵抗値が変わる素子です。 抵抗値の変化から温度を求める、温度センサーに使う素子である。 【B(不正解)】 ? 磁界の強さに応じた電圧を出す素子です。 磁気を測るセンサーで、温度の測定には使わない。 【C(不正解)】 ? 回転の速さ(角速度)を測るセンサーです。 姿勢や回転を測る部品で、温度は測らない。 【D(不正解)】 ? 物体の伸び縮みを抵抗の変化として測る素子です。 抵抗の変化を使うが、測るのはひずみ(変形)で温度ではない。
音声をPCMでデジタル化する。標本化周波数 8kHz、量子化 8 ビットで 1 分間録音すると、圧縮しない場合のデータ量は?
A. 3,840,000 バイト B. 64,000 バイト C. 480,000 バイト D. 8,000 バイト
この問題へのリンク答えと解説
正解: C 【A(不正解)】 ? 1 分間のビット数を、そのままバイトとした値です。 64,000×60=3,840,000 はビット数で、バイトにするには 8 で割る。 【B(不正解)】 ? 1 秒間のビット数を、そのままバイトとした値です。 1 秒分の量で、しかも単位がビットのままである。 【C(正解)】 ? 1 秒のビット数を 8 で割り、60 秒分にした値です。 8,000 回×8 ビット=64,000 ビット/秒=8,000 バイト/秒。×60 秒で 480,000 バイト。 【D(不正解)】 ? 1 秒間のデータ量です。 1 秒分の量で、60 秒を掛け忘れている。
データ構造
空のスタックに 1、2、3 の順に入れ、1 回取り出し、4 を入れ、2 回取り出した。取り出された順は?
A. 3、4、2 B. 1、2、3 C. 3、2、1 D. 3、4、1
この問題へのリンク答えと解説
正解: A 【A(正解)】 ? 最後に入れたものから取り出した順です。 3 を取り出し、4 を入れてすぐ 4、続いて 2 が出る。最後に 1 が残る。 【B(不正解)】 ? 入れた順に取り出した順です。 これはキューの取り出し方で、スタックでは後から入れたものが先に出る。 【C(不正解)】 ? 4 を入れなかった場合の順です。 4 を入れた直後に取り出すので、2 回目に出るのは 4 である。 【D(不正解)】 ? 4 の次に、最も古いものを取り出した順です。 4 の次に出るのは、その時点で一番上にある 2 である。
複数の端末から届く印刷の依頼を、届いた順に 1 件ずつ処理したい。依頼をためるのに適したデータ構造は?
A. スタック B. 2 分探索木 C. ハッシュ表 D. キュー
この問題へのリンク答えと解説
正解: D 【A(不正解)】 ? 後に入れたものを先に取り出す構造です。 最新の依頼から処理されるため、届いた順にならない。 【B(不正解)】 ? 値の大小で左右に並べる木構造です。 値の探索に向く構造で、到着順の処理には使わない。 【C(不正解)】 ? キーから格納位置を計算する表です。 キーでの検索に向き、届いた順は保てない。 【D(正解)】 ? 先に入れたものを先に取り出す構造です。 FIFO の構造で、届いた順に処理できる。
整数を入れた2 分探索木から、値を小さい順にすべて取り出したい。節をたどる順として適切なものは?
A. 先行順(節→左の部分木→右の部分木) B. 中間順(左の部分木→節→右の部分木) C. 後行順(左の部分木→右の部分木→節) D. 幅優先探索(根に近い段から順)
この問題へのリンク答えと解説
正解: B 【A(不正解)】 ? 節の値を、部分木より先に取り出す順です。 根が最初に出るため、小さい順にはならない。 【B(正解)】 ? 節の値を、左右の部分木の間で取り出す順です。 2 分探索木は左が小さく右が大きいので、中間順でたどると昇順に並ぶ。 【C(不正解)】 ? 節の値を、部分木の後に取り出す順です。 根が最後に出るため、昇順にはならない。 【D(不正解)】 ? 根からの深さが浅い順にたどる方法です。 段ごとに左から並べるだけで、値の大小の順とは一致しない。
空の2 分探索木に 50、30、70、20、40、60 の順で値を追加した。この木を先行順でたどると、値はどの順に出るか?
A. 20、30、40、50、60、70 B. 50、30、20、40、70、60 C. 20、40、30、60、70、50 D. 50、30、70、20、40、60
この問題へのリンク答えと解説
正解: B 【A(不正解)】 ? 値の小さい順の並びです。 これは中間順でたどった結果である。 【B(正解)】 ? 根から始め、左側を深く進んでから右側に移った並びです。 根 50、左の部分木(30、20、40)、右の部分木(70、60)の順に出る。 【C(不正解)】 ? 葉から先に出し、根が最後に来る並びです。 これは後行順でたどった結果である。 【D(不正解)】 ? 根から段ごとに、左から右へ並べた並びです。 これは幅優先探索で段ごとにたどった結果である。
会員名簿で、途中への追加と削除がとても多い。要素の移動を少なくするのに向くデータ構造は?
A. 要素を連続して並べた配列 B. スタック C. キュー D. ポインタでつないだ線形リスト
この問題へのリンク答えと解説
正解: D 【A(不正解)】 ? 要素番号で直接アクセスできる構造です。 途中に追加・削除すると、後ろの要素をまとめてずらす必要がある。 【B(不正解)】 ? 後に入れたものを先に出す構造です。 出し入れは一端だけで、途中への追加や削除には向かない。 【C(不正解)】 ? 先に入れたものを先に出す構造です。 末尾に入れて先頭から出すだけで、途中への追加や削除には向かない。 【D(正解)】 ? 各要素が次の要素の位置を持つ構造です。 追加・削除はポインタの付け替えだけで済み、後ろの要素をずらす必要がない。
多数の作業から、締切が最も早いものを繰り返し素早く取り出したい。これに向くデータ構造は?
A. ヒープ B. 整列していない配列 C. スタック D. キュー
この問題へのリンク答えと解説
正解: A 【A(正解)】 ? 親の値が子の値以下という条件を保つ木構造です。 最小ヒープでは最小の要素が常に根にあり、取り出しと再構成を効率よく行える。 【B(不正解)】 ? 要素を順不同で並べた構造です。 毎回すべての要素を調べて最小値を探すため、件数に比例した手間がかかる。 【C(不正解)】 ? 後に入れたものを先に出す構造です。 入れた順で出すだけで、値の大小では取り出せない。 【D(不正解)】 ? 先に入れたものを先に出す構造です。 到着順に出すため、締切の早い順にはならない。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/heapq --- ヒープキューアルゴリズム(Python ドキュメント)
要素番号が 0 から始まる 5 行 4 列の 2 次元配列 A を、行の順に連続した領域へ置く。1 要素は 4 バイト、A[0, 0] は 1000 番地。A[2, 3] の番地は?
A. 1068 番地 B. 1048 番地 C. 1044 番地 D. 1011 番地
この問題へのリンク答えと解説
正解: C 【A(不正解)】 ? 列の順に置いたと考えた値です。 列の順なら前にある要素は 3×5+2=17 個で 1068 番地。今回は行の順である。 【B(不正解)】 ? 前にある要素を 1 つ多く数えた値です。 前にある要素は 11 個で、12 個と数えると 1048 番地になる。 【C(正解)】 ? 前にある要素の数を 2×4+3 と数えた値です。 前にある要素は 2×4+3=11 個。1000+11×4=1044 番地となる。 【D(不正解)】 ? 要素の大きさを掛けずに足した値です。 11 個という要素数を、そのまま番地に足している。1 要素は 4 バイトである。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/試験で使用する情報技術に関する用語・プログラム言語など Ver.5.1 別紙 2 擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)(IPA)
アルゴリズム
整列済みの 1,000 件のデータから2 分探索法で 1 件を探す。比較の回数は最大で何回か?
A. 500 回 B. 1,000 回 C. 32 回 D. 10 回
この問題へのリンク答えと解説
正解: D 【A(不正解)】 ? 線形探索の平均の比較回数です。 先頭から順に調べる線形探索の平均で、2 分探索の値ではない。 【B(不正解)】 ? 線形探索の最大の比較回数です。 全件を順に調べる場合の回数である。 【C(不正解)】 ? 1,000 の平方根に近い値です。 平方根は、2 分探索の比較回数とは関係がない。 【D(正解)】 ? 2 を何乗すると 1,000 を超えるかで決まる回数です。 比較のたびに範囲が半分になる。2¹⁰=1,024 なので、最大 10 回で見つかるか、無いと分かる。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/bisect --- 配列二分法アルゴリズム(Python ドキュメント)
データ 5、3、8、1 を昇順に並べる。先頭から隣どうしを比べて交換するバブルソートの 1 巡目を終えた並びは?
A. 1、3、5、8 B. 3、5、1、8 C. 1、3、8、5 D. 3、5、8、1
この問題へのリンク答えと解説
正解: B 【A(不正解)】 ? 整列がすべて終わった結果です。 1 巡目では最大値が末尾に決まるだけで、全体はまだ並んでいない。 【B(正解)】 ? 隣どうしの比較と交換を、末尾まで 1 回通した結果です。 5 と 3 を交換、5 と 8 はそのまま、8 と 1 を交換する。最大の 8 が末尾に来る。 【C(不正解)】 ? 最小値を先頭と交換した結果です。 これは選択ソートの 1 回目の結果である。 【D(不正解)】 ? 最初の 1 回の交換だけを行った結果です。 1 巡目は末尾まで比較を続けるので、8 と 1 も交換される。
基準値を 1 つ選び、それより小さいグループと大きいグループに分け、各グループを同じ手順で整列する。この整列法は?
A. バブルソート B. 選択ソート C. クイックソート D. 挿入ソート
この問題へのリンク答えと解説
正解: C 【A(不正解)】 ? 隣どうしを比べて交換する方法です。 隣の要素との比較と交換を繰り返す方法で、基準値で分けない。 【B(不正解)】 ? 残りから最小値を選んで前に置く方法です。 最小値の選択を繰り返す方法で、グループに分けない。 【C(正解)】 ? ピボットと呼ぶ値を使う整列法です。 基準値(ピボット)による分割を繰り返す、分割統治法の整列法である。 【D(不正解)】 ? 整列済みの部分の適切な位置に差し込む方法です。 1 つずつ差し込む方法で、基準値による分割は行わない。
次の再帰関数 f で、f(7) の戻り値は?(return は値を返して関数を終える) ○整数型: f(整数型: n) if (n ≦ 1) return 1 endif return n × f(n − 2)
A. 105 B. 5040 C. 15 D. 16
この問題へのリンク答えと解説
正解: A 【A(正解)】 ? 7、5、3、1 を掛け合わせた値です。 f(7)=7×f(5)=7×5×f(3)=7×5×3×f(1)=7×5×3×1=105。 【B(不正解)】 ? 7 から 1 までのすべての整数を掛けた値です。 これは 7 の階乗で、n を 1 ずつ減らす場合の値。今回は 2 ずつ減らす。 【C(不正解)】 ? 5、3、1 を掛け合わせた値です。 f(5) の値で、最初の 7 を掛け忘れている。 【D(不正解)】 ? 7、5、3、1 を足し合わせた値です。 関数は掛け算で値を組み立てるので、足し算にはならない。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/試験で使用する情報技術に関する用語・プログラム言語など Ver.5.1 別紙 2 擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)(IPA)
次の処理を実行した後の s の値は? 整数型: s ← 0 整数型: i for (i を 1 から 9 まで 2 ずつ増やす) s ← s + i endfor
A. 45 B. 16 C. 25 D. 20
この問題へのリンク答えと解説
正解: C 【A(不正解)】 ? 1 から 9 までのすべての整数を足した値です。 i は 2 ずつ増えるので、偶数は足されない。 【B(不正解)】 ? 1、3、5、7 を足した値です。 i が 9 のときも繰返しは実行されるので、9 も足される。 【C(正解)】 ? 1、3、5、7、9 を足した値です。 i は 1、3、5、7、9 と変わる。合計は 1+3+5+7+9=25。 【D(不正解)】 ? 2、4、6、8 を足した値です。 i の初期値は 1 なので、足されるのは奇数である。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/試験で使用する情報技術に関する用語・プログラム言語など Ver.5.1 別紙 2 擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)(IPA)
次の処理を実行した後の a の値は? 整数型: a ← 84 整数型: b ← 36 整数型: r while (b ≠ 0) r ← a mod b a ← b b ← r endwhile
A. 12 B. 0 C. 36 D. 252
この問題へのリンク答えと解説
正解: A 【A(正解)】 ? 84 と 36 の最大公約数です。 84 mod 36=12 で a=36、b=12。36 mod 12=0 で a=12、b=0 となり、繰返しを抜ける。 【B(不正解)】 ? 最後に b に入った値です。 0 は終了時の b の値で、a には直前の b の値 12 が入っている。 【C(不正解)】 ? 1 回目の繰返しを終えた時点の a の値です。 1 回目の後も b は 12 で 0 ではないため、繰返しは続く。 【D(不正解)】 ? 84 と 36 の最小公倍数です。 84×36÷12=252 は最小公倍数で、この処理では求めていない。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/試験で使用する情報技術に関する用語・プログラム言語など Ver.5.1 別紙 2 擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)(IPA)
辺の重みが A−B 4、A−C 1、C−B 2、B−D 1、C−D 5 の無向グラフがある。A から D への最短経路の重みの合計は?
A. 5 B. 6 C. 3 D. 4
この問題へのリンク答えと解説
正解: D 【A(不正解)】 ? A→B→D とたどった合計です。 4+1=5 で、C を経由する方が短い。 【B(不正解)】 ? A→C→D とたどった合計です。 1+5=6 で、B を経由する経路より長い。 【C(不正解)】 ? A−C と B−D の重みだけを足した値です。 C と B を結ぶ辺の重み 2 が抜けており、経路としてつながっていない。 【D(正解)】 ? A→C→B→D とたどった合計です。 1+2+1=4。A→B→D の 5、A→C→D の 6 より小さい。ダイクストラ法で求めても同じ結果になる。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/Shortest Paths(NetworkX ドキュメント)
社内 SNS で、ある社員から「つながりの段数」が少ない順に知り合いを調べたい。グラフをたどる方法として適したものは?
A. 深さ優先探索 B. 幅優先探索 C. 2 分探索法 D. ハッシュ表探索法
この問題へのリンク答えと解説
正解: B 【A(不正解)】 ? 行けるところまで先に進んでから戻る方法です。 1 本の道を深く進むため、遠い人を先に調べることがある。 【B(正解)】 ? 出発点に近い頂点から順に調べる方法です。 1 段先、2 段先と近い順に調べるので、段数の少ない順に見つかる。 【C(不正解)】 ? 整列済みデータの範囲を半分ずつ絞る方法です。 整列済みの配列を探す方法で、グラフをたどる方法ではない。 【D(不正解)】 ? キーから格納位置を計算する探索法です。 キーで直接探す方法で、つながりの段数の順にはたどれない。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/Shortest Paths(NetworkX ドキュメント)
キーを 7 で割った余りを格納位置とするハッシュ表探索法を使う。キー 15 と同じ格納位置になるキーは?
A. 21 B. 22 C. 16 D. 30
この問題へのリンク答えと解説
正解: B 【A(不正解)】 ? 7 の倍数のキーです。 21 は 7 で割り切れ、位置 0 に入る。 【B(正解)】 ? 15 より 7 大きいキーです。 15 mod 7=1、22 mod 7=1 なので同じ位置になり、衝突が起きる。 【C(不正解)】 ? 15 より 1 大きいキーです。 16 mod 7=2 で、15 とは位置が違う。 【D(不正解)】 ? 15 の 2 倍のキーです。 30 mod 7=2 で、15 とは位置が違う。
次の処理を実行した後の x の値は?配列の要素番号は 1 から始まる。 整数型の配列: d ← {4, 9, 2, 7} 整数型: x ← d[1] 整数型: i for (i を 2 から 4 まで 1 ずつ増やす) if (d[i] > x) x ← d[i] endif endfor
A. 7 B. 4 C. 2 D. 9
この問題へのリンク答えと解説
正解: D 【A(不正解)】 ? 配列の最後の要素の値です。 7 は x の 9 より小さいので、x は置き換わらない。 【B(不正解)】 ? 配列の最初の要素の値です。 4 は初期値で、i=2 のとき 9 に置き換わる。 【C(不正解)】 ? 配列の中で最も小さい値です。 条件は d[i] > x なので、小さい値では x は置き換わらない。 【D(正解)】 ? 配列の中で最も大きい値です。 x より大きい要素が出るたびに x を置き換えるので、最後には最大値 9 が残る。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/試験で使用する情報技術に関する用語・プログラム言語など Ver.5.1 別紙 2 擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)(IPA)
プログラミングとプログラム言語
次のBNFで定義した <符号付き数> として、生成できる文字列は? <数字> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 <数> ::= <数字> | <数> <数字> <符号付き数> ::= <数> | − <数>
A. −07 B. +5 C. 3−4 D. −
この問題へのリンク答えと解説
正解: A 【A(正解)】 ? 符号の後に数字が 2 つ続く文字列です。 <数> は数字を 1 個以上並べたもので、先頭の 0 も許される。− の後に <数> の 07 が続くので生成できる。 【B(不正解)】 ? プラスの符号で始まる文字列です。 定義にある符号は − だけで、+ は生成できない。 【C(不正解)】 ? 数字の間に符号をはさんだ文字列です。 − は先頭にしか置けないので、途中の − は生成できない。 【D(不正解)】 ? 符号だけの文字列です。 − の後には必ず <数> が要り、数字が 1 つ以上必要である。
引数は値呼出しで渡すものとする。次の処理を実行した後の a の値は? ○add1(整数型: x) x ← x + 1 整数型: a ← 5 add1(a)
A. 6 B. 1 C. 5 D. 未定義
この問題へのリンク答えと解説
正解: C 【A(不正解)】 ? a の値が、手続の中の加算を受けた場合です。 参照呼出しなら a も 6 になるが、今回は値呼出しである。 【B(不正解)】 ? x が 0 から数え直された場合です。 x には a の値 5 の写しが入っており、0 から始まるわけではない。 【C(正解)】 ? a の値が、呼び出す前から変わらない場合です。 手続の中で変えたのは、a の値を写した仮引数 x だけ。呼出し元の a は 5 のままである。 【D(不正解)】 ? a に値が入っていない状態です。 a には最初に 5 が代入されており、未定義にはならない。
出典: Passing Information to a Method or a Constructor(Oracle Java Tutorials)/試験で使用する情報技術に関する用語・プログラム言語など Ver.5.1 別紙 2 擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)(IPA)
チームで字下げの幅や変数の命名規則をそろえるコーディング標準を定めた。主な目的は?
A. 実行速度を必ず速くする B. テストを不要にする C. コンパイラの種類を選ばなくする D. 読みやすくして保守性を高める
この問題へのリンク答えと解説
正解: D 【A(不正解)】 ? 処理性能に関わる目的です。 書き方の統一は読みやすさのためで、速度が上がるとは限らない。 【B(不正解)】 ? 検証の工程に関わる目的です。 標準を守っても、テストは必要である。 【C(不正解)】 ? 処理系の互換性に関わる目的です。 命名や字下げのそろえ方は、処理系の互換性とは関係しない。 【D(正解)】 ? 後から読む人の理解のしやすさに関わる目的です。 書き方をそろえると誤りに気付きやすく、修正や引継ぎがしやすくなる。
あるクラスに、名前は同じで引数の型や数が違うメソッドを複数定義した。この仕組みは?
A. オーバーライド B. オーバーロード C. カプセル化 D. コンストラクタ
この問題へのリンク答えと解説
正解: B 【A(不正解)】 ? 親クラスのメソッドを子クラスで定義し直す仕組みです。 継承したメソッドを同じ名前・同じ引数で置き換える仕組みで、引数の違いで使い分けるものではない。 【B(正解)】 ? 1 つのクラスの中で、同名のメソッドを使い分ける仕組みです。 引数の型や数の違いで、どのメソッドを呼ぶかが決まる。 【C(不正解)】 ? データと操作をまとめ、内部を隠す考え方です。 内部の実装を隠す考え方で、同名メソッドの複数定義とは違う。 【D(不正解)】 ? オブジェクトを作るときに呼ばれる特別なメソッドです。 初期化のためのメソッドの名前で、この仕組みの名前ではない。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/Defining Methods(Overloading Methods)(Oracle Java Tutorials)/Overriding and Hiding Methods(Oracle Java Tutorials)
次の処理で x が 75 のとき、r に入る値は? if (x ≧ 90) r ← "S" elseif (x ≧ 60) r ← "B" elseif (x ≧ 70) r ← "A" else r ← "C" endif
A. "A" B. "S" C. "B" D. "C"
この問題へのリンク答えと解説
正解: C 【A(不正解)】 ? x ≧ 70 の処理で入る値です。 75 は x ≧ 70 も満たすが、先に x ≧ 60 が真になるため、この処理は実行されない。 【B(不正解)】 ? x ≧ 90 の処理で入る値です。 75 は 90 未満なので、最初の条件は偽である。 【C(正解)】 ? x ≧ 60 の処理で入る値です。 条件は上から評価し、最初に真になった x ≧ 60 の処理だけを行う。以降の elseif は評価しない。 【D(不正解)】 ? どの条件も真にならないときの値です。 x ≧ 60 が真になるので、else の処理は実行されない。
出典: 試験で使用する情報技術に関する用語・プログラム言語など Ver.5.1 別紙 2 擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)(IPA)
関数が入力を受けて出力を返すだけで内部状態を持たない、という考え方で問題を関数に分けて書くプログラム言語の分類は?
A. 関数型言語 B. 手続型言語 C. 宣言型言語 D. オブジェクト指向言語
この問題へのリンク答えと解説
正解: A 【A(正解)】 ? 問題をいくつかの関数に分けて考える分類です。 理想的な関数は同じ入力に同じ出力を返し、内部状態を持たない。ML や Haskell が知られる。 【B(不正解)】 ? コンピュータに行うべき指示を順に並べる分類です。 プログラムを指示の並びとして書く分類で、C や Pascal が当てはまる。 【C(不正解)】 ? 解きたい問題の仕様を書き、解き方は処理系に任せる分類です。 SQL が代表で、何が欲しいかを書く。関数に分けて考える分類とは違う。 【D(不正解)】 ? 内部状態とメソッドを持つオブジェクトを操作する分類です。 オブジェクトが内部状態を持つ点で、内部状態を持たない関数を中心にする考え方と違う。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/関数型プログラミング HOWTO(Python ドキュメント)
その他の言語(マークアップ言語など)
取引先とのデータ交換で、項目の意味を表すタグを自社で決めて使いたい。適したマークアップ言語は?
A. HTML B. CSS C. XML D. UML
この問題へのリンク答えと解説
正解: C 【A(不正解)】 ? Web ページの構造を表す言語です。 決められた要素で Web 文書を書く言語で、独自のタグの定義は目的としない。 【B(不正解)】 ? Web 文書の見た目を指定する言語です。 フォントや色など表示を指定するもので、データの意味を表すタグは作れない。 【C(正解)】 ? 利用者が要素の名前を決められる言語です。 XML は独自のタグを定義でき、データ交換に広く使われる。 【D(不正解)】 ? 設計を図で表す表記法です。 オブジェクト指向設計のための図の表記法で、データ交換の文書形式ではない。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/Extensible Markup Language (XML) 1.0(W3C 勧告)
社内サイトの全ページで、文字の色や余白をまとめて変えたい。HTML の構造は変えずに済ませたい。適した方法は?
A. CSS で表示の指定をまとめて書き換える B. 全ページの HTML のタグを書き直す C. JSON でページの内容を書き換える D. XML の独自タグを各ページに加える
この問題へのリンク答えと解説
正解: A 【A(正解)】 ? Web 文書に色や余白などの見た目を加える言語です。 スタイルシートは構造と表示形式を分ける仕組みで、共通の CSS を直せば全ページに反映できる。 【B(不正解)】 ? 文書の構造そのものを手で直す方法です。 構造を変えずに済ませたいという条件に合わず、手間も大きい。 【C(不正解)】 ? 名前と値の組でデータを表す形式です。 データ交換の形式で、表示の見た目を指定するものではない。 【D(不正解)】 ? 利用者が要素の名前を決められる言語です。 データの意味づけに使う言語で、色や余白の指定とは役割が違う。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/Cascading Style Sheets(W3C)
オブジェクトを { } で、配列を [ ] で囲み、名前と値の組でデータを表すテキスト形式は?
A. XML B. CSS C. SVG D. JSON
この問題へのリンク答えと解説
正解: D 【A(不正解)】 ? タグで要素を囲むマークアップ言語です。 開始タグと終了タグで要素を表し、{ } や [ ] では囲まない。 【B(不正解)】 ? Web 文書の見た目を指定する言語です。 表示の指定を書く言語で、データを名前と値の組で交換する形式ではない。 【C(不正解)】 ? XML で図形を記述する画像の形式です。 図形を XML のタグで書く形式で、{ } や [ ] でデータを表すものではない。 【D(正解)】 ? Web API のデータ交換でよく使われるテキスト形式です。 文字列・数値・真偽値・null と、オブジェクト・配列でデータを表す形式である。
出典: 基本情報技術者試験(レベル 2)シラバス Ver.9.2(IPA)/RFC 8259 The JavaScript Object Notation (JSON) Data Interchange Format
この分野に出てくる用語(66 語)
2 の補数:負の整数を 2 進数で表す代表的な方法。各ビットを反転して 1 を加えた値で負の数を表す。
2 分探索法:整列済みのデータの中央の値と比べ、探す範囲を半分ずつ絞り込む探索の方法。
2 分探索木:各節について、左の部分木には小さい値、右の部分木には大きい値が入るように並べた 2 分木。
BCD:10 進数の 1 桁を 4 ビットの 2 進数で表す方式。2 進化 10 進とも呼ぶ。
BNF:プログラム言語などの文法を、記号の置き換え規則の組で表す記法。
CSS:Web 文書にフォントや色、余白などの見た目を加えるスタイルシートの言語。文書の構造と表示を分けられる。
JSON:名前と値の組や配列でデータを表すテキスト形式。プログラム間のデータ交換に広く使われる。
PCM:アナログの音声信号を標本化・量子化・符号化して、ディジタルデータに変換する方式。
UML:オブジェクト指向の分析・設計で使う、図の表記法を定めたモデリング言語。
Unicode:世界の多くの文字に一意の番号を割り当てた文字コードの体系。UTF-8 などの符号化方式で表す。
XML:タグで文書の意味や構造を表すマークアップ言語。利用者が独自のタグを定義できる。
オートマトン:入力に応じて状態を移り変わり、出力や受理を決める計算のモデル。状態遷移図で表す。
オーバーライド:親クラスのメソッドと同じ名前・同じ引数のメソッドを子クラスで定義し、動作を置き換えること。
オーバーロード:1 つのクラスの中で、名前が同じで引数の型や数が違うメソッドを複数定義すること。
カプセル化:データとそれを操作するメソッドを 1 つにまとめ、内部の詳細を外部から見えなくすること。
キュー:最初に入れたデータを最初に取り出す(FIFO)データ構造。待ち行列とも呼ぶ。
クイックソート:基準値(ピボット)より小さいグループと大きいグループに分け、それぞれを同じ手順で整列する整列法。
スタック:最後に入れたデータを最初に取り出す(LIFO)データ構造。
ダイクストラ法:辺の重みが 0 以上のグラフで、始点から各頂点への最短経路を求める方法。
ディープラーニング:多層のニューラルネットワークを使う機械学習の手法。深層学習とも呼ぶ。
ド・モルガンの法則:「A かつ B」の否定は「A でない、または B でない」と等しく、「A または B」の否定は「A でない、かつ B でない」と等しいという法則。
バックプロパゲーション:出力の誤差(損失)が小さくなるよう、勾配を使って重みを出力側から調整するニューラルネットワークの学習方法。
ハッシュ表探索法:キーの値からハッシュ関数で格納位置を計算し、データに直接アクセスする探索の方法。
ハフマン符号:出現する頻度の高い記号に短い符号を割り当て、全体のデータ量を減らす符号化の方式。
バブルソート:隣どうしの要素を比べ、順序が逆なら交換する操作を繰り返す整列法。1 巡ごとに最大(または最小)の値が端に決まる。
ハミング符号:検査用のビットを加えることで、1 ビットの誤りを訂正できる符号。
パリティチェック:データに検査用のビットを 1 つ付け、1 の個数が偶数か奇数かで誤りを検出する方法。
ヒープ:親の値が子の値以下(最小ヒープの場合)という条件を保つ 2 分木。最小の要素が常に根にある。
フィードバック制御:制御の結果を測って目標値と比べ、その差をなくすように操作を調整し続ける制御。
フィードフォワード制御:外乱を前もって検出し、制御の結果に影響が出る前に操作量を変えて打ち消す制御。
過学習:モデルが訓練データに合わせすぎ、訓練データではよく当たるのに新しいデータでは当たらなくなる状態。
関数型言語:問題をいくつかの関数に分けて考えるプログラム言語の分類。理想的な関数は内部状態を持たず、同じ入力に同じ出力を返す。
機械学習:データから規則や特徴をコンピュータに学習させ、予測や分類などに使う AI の技術。
擬似相関:2 つの変数に因果関係が無いのに、相関があるように見えること。偶然や、両方に効く別の要因で生じる。
逆ポーランド表記法:演算子を 2 つの項の後ろに書く式の表し方。括弧が要らず、スタックを使って左から順に計算できる。
強化学習:環境の中での行動に対する報酬や罰則をもとに、報酬が最大になる方策を学ぶ機械学習。
教師あり学習:正解(ラベル)の付いたデータで学習し、入力から正解を予測する機械学習。回帰や分類に使う。
教師なし学習:正解ラベルの無いデータから、意味のあるパターンや構造を見つける機械学習。クラスタリングなどがある。
計算量:アルゴリズムの処理にかかる手間を、データ量に対する増え方で表したもの。O 記法(オーダ)で表す。
桁落ち:値の近い 2 つの数を引き算したとき、有効数字の桁が大きく減って生じる誤差。
後行順:木をたどる順の一つ。左の部分木、右の部分木をたどってから節を取り出す。
勾配消失問題:層の多いニューラルネットワークで、入力に近い層の勾配が極めて小さくなり、学習が進まなくなる問題。
再帰:関数や手続が、その処理の中で自分自身を呼び出すこと。
算術シフト:符号ビットを保ったままビット列をずらすシフト演算。左へ 1 ビットずらすと 2 倍、右へ 1 ビットずらすと 1/2 に相当する。
字句解析:原始プログラムの文字の並びを、名前・数値・記号などのトークンに分けるコンパイルの最初の段階。
手続型言語:コンピュータに行うべき指示を順に並べてプログラムを書く言語の分類。C や Pascal など。
情報落ち:絶対値が大きく違う 2 つの数を足し引きしたとき、小さい方の値が結果に反映されない誤差。
情報量:ある事象が起きたと知ったときに得られる情報の大きさ。確率 p の事象では −log₂p ビットで、起こりにくいほど大きい。
深さ優先探索:行けるところまで先へ進み、行き止まりで戻って別の道を調べる探索。
正規表現:文字列のパターンを、文字と記号(繰返しの * など)の組合せで表す書き方。検索や入力の検査に使う。
先行順:木をたどる順の一つ。節を先に取り出し、次に左の部分木、右の部分木の順にたどる。
線形リスト:各要素が次の要素の位置(ポインタ)を持ち、一列につながったデータ構造。途中の追加・削除はポインタの付け替えで済む。
線形計画法:一次式で表した制約条件の下で、目的とする式の値を最大または最小にする解を求める手法。
選択ソート:未整列の部分から最小(または最大)の値を選び、先頭の要素と交換する操作を繰り返す整列法。
挿入ソート:整列済みの部分の適切な位置に、未整列の要素を 1 つずつ差し込んでいく整列法。
待ち行列理論:窓口などで、到着・サービス・待ちの関係を数式で扱う理論。M/M/1 モデルで平均待ち時間などを求める。
値呼出し:引数の値の写しを手続に渡す方式。手続の中で仮引数を変えても、呼出し元の変数は変わらない。
中央値:データを大きさの順に並べたとき、真ん中に来る値。極端な値があっても大きく動きにくい。
中間順:木をたどる順の一つ。左の部分木、節、右の部分木の順にたどる。2 分探索木では値が小さい順に出る。
排他的論理和:2 つの入力が異なるときだけ真(1)になる論理演算。XOR とも書く。
標準偏差:データのばらつきの大きさを表す値。分散の正の平方根で求める。
浮動小数点数:数値を符号・仮数・指数の組で表す形式。広い範囲の数を、一定の有効桁数で表せる。
幅優先探索:出発点に近い頂点から順に、段ごとに調べていく探索。辺の数が最も少ない経路を見つけられる。
分割統治法:大きな問題を小さな部分問題に分けて解き、その結果を組み合わせて全体を解く設計方法。
流れ図:処理の手順を、決められた記号と矢印で表した図。フローチャートとも呼ぶ。
論理シフト:符号を考えずにビット列全体をずらし、空いた位置に 0 を入れるシフト演算。
独学の次に、講座で体系立てて学びたい人へ
この問題集は独学用です。IT の基礎から講師つきで体系立てて学びたい人には、資格や IT の講座がそろうスクールも選択肢になります。
本ページは広告・アフィリエイトプログラムを利用しており、リンク経由でのお申し込み・購入により当サイトに収益が発生することがあります。ただし、ランキング・評価・掲載内容は広告費や報酬の有無に関わらず編集部の独自基準で決定しており、広告主からの指示により内容を変更することはありません。
IT・Webデザイン・資格まで幅広い講座。生成AI/DX講座はリスキリング補助金の対象
まずは無料ではじめられます。リンク先は公式サイトです。
このサービスの解説記事を読む →