1. 離散数学

コンピュータの内部で数字がどのように表現され、計算されているかの基礎(数学的なルール)を学びます。

(1) 基数

基数(きすう)とは、数を数えるときに「いくつ集まったら桁が繰り上がるか」の基準となる数のことです。私たちが日常で使っているのは「10集まると桁が上がる」10進数です。

2進数

コンピュータの世界の基本。「0」と「1」だけで表現され、2になると桁が上がります。
(例: 0, 1, 10, 11, 100...)

16進数

長すぎる2進数を人間が見やすくするための表現。「0〜9」と「A〜F(10〜15)」を使い、16で桁が上がります。

n進数と基数変換

10進数を2進数に直すには、10進数を「2でひたすら割って余りを下から読む」方法(すだれ算)を使います。

(2) 数値の表現

負の数の表現(補数表現)

コンピュータは「マイナス(-)」の記号を持っていません。そこで、補数(ほすう)というテクニックを使ってマイナスの数を表現します。

「2の補数」の作り方:
① ビットをすべて反転させる(0を1に、1を0にする) = 1の補数
② それに「1」を足す = 2の補数(これがマイナスの数として扱われます)

小数の表現方法
固定小数点数

小数点の位置を固定して表す方法。お金の計算など、誤差を出したくない時に使います。

浮動小数点数(単精度/倍精度)

「1.23 × 104」のように、小数点の位置を動かして(浮動させて)表す方法。非常に大きな数や小さな数を扱えます。単精度(32ビット)より倍精度(64ビット)の方が高精度です。この時の「1.23」を仮数、「4」を指数と呼びます。

BCDとパック10進数

10進数の1桁(0〜9)を、わざわざ2進数の4ビットを使って表す方法です(例:9なら1001)。計算の誤差を無くすために事務計算などで使われます。

(3) 算術演算と精度

シフト演算(ビットをずらす計算)

2進数のビットを左右にズラすことで、掛け算や割り算を超高速に行うテクニックです。

  • 左に1つズラす = 2倍になる
  • 右に1つズラす = 1/2になる
論理シフト

単純にズラし、空いた場所には常に「0」を入れる方法。符号(プラスマイナス)を気にしないデータに使います。

算術シフト

先頭の「符号ビット(プラスマイナスを表すビット)」は固定したまま、残りの部分だけをズラす方法。

誤差とオーバーフロー

コンピュータは限られた桁数で計算するため、計算結果が正確にならないこと(誤差)があります。

用語意味・原因
桁落ち値がほぼ等しい2つの数字を引き算したとき、有効な桁数がガクッと減ってしまう誤差。
情報落ち非常に大きな数と非常に小さな数を足し算したとき、小さな数が無視(切り捨て)されてしまう誤差。
オーバーフロー
(あふれ)
計算結果が大きすぎて、コンピュータが用意した箱(桁数)に収まりきらなくなるエラー。
アンダーフロー計算結果が「0」に近すぎて、表現できる最小の数よりも小さくなってしまうエラー。

(4) 集合と命題

命題(めいだい)とは、「正しい(真: True)」か「正しくない(偽: False)」かがハッキリと判定できる文章のことです。 集合は、条件を満たすものの集まりをベン図(丸い図)で表したものです。

和集合 (A OR B) 積集合 (A AND B) 補集合 (A以外) 部分集合 (AはBの一部)

(5) 論理演算

「1(真)」と「0(偽)」を使って行う計算です。真理値表という表を使って結果を整理します。

論理和 (OR)
どれか1つでも1なら1
論理積 (AND)
両方とも1の時だけ1
否定 (NOT)
1と0をひっくり返す
排他的論理和 (XOR)
2つの値が「違う」時だけ1
否定論理和 (NOR)
ORの結果をひっくり返す
否定論理積 (NAND)
ANDの結果をひっくり返す
ド・モルガンの法則
「A AND B の否定」は、「Aの否定 OR Bの否定」と同じになる、という論理式の変形ルールです。式をシンプルにするために使われます。

2. 応用数学

データ分析やAIの基礎となる「確率・統計」や、行列、グラフなどの数学的原理を学びます。

(1) 確率と統計

① 確率の基本
  • 階乗(!):その数から1までの全ての整数を掛け合わせる(例: 3! = 3×2×1 = 6)。
  • 順列(P) と 組合せ(C):並び順を気にするのが「順列」、順番を気にせず選ぶだけなのが「組合せ」。
  • 期待値:「だいたいこれくらいになるだろう」という平均的な見込みの値(確率 × もらえる金額の合計)。
  • ベイズの定理:「結果」から、その「原因」が何であったかの確率(条件付き確率)を逆算する定理。迷惑メールフィルターなどに使われます。
代表的な確率分布
正規分布(左右対称のベル型カーブ) 二項分布(コインの裏表のように結果が2つの確率) ポアソン分布(稀にしか起こらない事象の確率) 指数分布(次の客が来るまでの待ち時間などの分布)
② 統計とデータ分析の手法
用語わかりやすい意味
代表値平均値(全部足して割る)、中央値(メジアン)(真ん中の人の値)、最頻値(モード)(一番多く出た値)。
分散・標準偏差データの「ばらつき具合」を表す数値。大きいほどデータが散らばっている。
相関関係「気温が上がるとアイスが売れる」のような、2つのデータの連動性のこと(相関係数で表す)。※「擬似相関」は見せかけの相関のこと。
回帰分析過去のデータから数式(回帰直線)を作り、未来の数値を予測する分析手法(例: 売上予測)。
ヒストグラム
箱ひげ図
データの分布(散らばり)を視覚的にわかりやすくしたグラフ。
仮説検定(本当に効果があったの?)

「新しい薬は本当に効果があるのか?」などを統計的に証明する手法です。

  • 帰無仮説(きむかせつ):「薬に効果はない」という、棄却(否定)したい仮説。これを否定することで、逆の「対立仮説(効果がある)」を証明します。
  • 有意水準(p値):偶然起きただけと判断する確率の基準(5%など)。これより珍しいことが起きれば「効果があった」と認めます。
  • 第1種の誤り:本当は効果がないのに「効果がある」と勘違いしてしまう誤り。

(2)〜(7) 応用数学の重要テーマ

数値計算 (行列・ベクトル)

スカラ(大きさだけの数)に対して、ベクトルは「大きさと向き」を持つ数。これらを縦横に並べたものが行列です。CGの回転計算などに使われます。

数値解析の誤差
  • 丸め誤差:四捨五入や切り捨てをしたことで生じるズレ。
  • 打切り誤差:無限に続く計算(円周率など)を、途中で打ち切ったことで生じるズレ。
グラフ理論

路線図のように、丸(ノード)と線(エッジ)でつながりを表す数学。一方通行の矢印があるものを有向グラフ、矢印がないものを無向グラフと呼びます。

待ち行列理論 (M/M/1モデル)

「レジの待ち時間」や「サーバーの処理待ち」を計算する理論。お客さんが来る間隔(到着間隔)と、レジの処理速度(サービス時間)から、どれくらい行列ができるかを求めます。

最適化問題
制約がある中で「利益を最大化する」または「コストを最小化する」組み合わせを見つける数学。代表的な手法に「線形計画法」や「動的計画法」があります。

3. 情報に関する理論

(1) 情報理論 / (2) 符号理論

情報理論では、珍しい事象(起こる確率が低いこと)ほど「情報量が大きい」と考えます(例:「明日は晴れ」より「明日は雪」の方が驚きが大きく情報量が多い)。

符号化とA/D変換

アナログの音声などをデジタルの「0と1」に変換することをA/D変換(符号化)と呼びます。以下の3ステップで行われます。

①標本化
波を一定間隔で切る
②量子化
波の高さを数値化
③符号化
数値を0と1にする

ハフマン符号: よく使われる文字には短いビットを、あまり使われない文字には長いビットを割り当てることで、全体のデータ量を小さくする(データ圧縮)テクニックです。

(3) 文字の表現 / (4) 述語論理

代表的な文字コード
  • ASCIIコード:英数字だけの最も基本的なコード(漢字は使えない)。
  • シフトJISコード / EUC:日本語(漢字)を表現できるように拡張したコード。
  • Unicode / UCS:世界中のすべての文字を一つのコード体系で表現しようとする世界標準コード(絵文字なども含まれる)。
述語論理(推論のやり方)
  • 演繹推論(えんえき):一般的な法則から、個別の結論を導く(「人は死ぬ」→「ソクラテスは人だ」→「ソクラテスは死ぬ」)。
  • 帰納推論(きのう):個別の事実から、一般的な法則を導き出す(「AさんもBさんもCさんも死んだ」→「人は死ぬのだろう」)。

(5) 形式言語 / (6) オートマトン

形式言語とBNF記法

プログラミング言語の文法を厳密に定義するためのルール。BNF記法は、「AはBまたはCである」といった文法規則を記号で定義する書き方です。

逆ポーランド表記法:計算式を「1 + 2」ではなく「1 2 +」と後ろに記号を置く書き方。コンピュータが計算しやすいのが特徴です。

オートマトン

外部からの入力(お金を入れる、ボタンを押すなど)によって、現在の「状態」が次々に変わっていく(遷移する)数学的なモデルのこと。状態遷移図を使って、自動販売機の動きなどを設計する際に使われます。

(7) 計算量

プログラム(アルゴリズム)の実行スピードが、扱うデータ量によってどれくらい遅くなるかを評価する指標です。
オーダー記法( $O(n)$ など )を使って表現します。

$O(n)$ はデータが2倍になれば時間も2倍、$O(n^2)$ はデータが2倍になると時間は4倍かかることを意味します。

(8) AI(人工知能)に関する技術

試験で非常に多く出題される最新トレンド分野です。用語の意味をしっかりと整理しておきましょう。

① 機械学習の3つの手法
手法説明代表的なアルゴリズム
教師あり学習 「入力データ」と「正解(答え)」のセットを与えて学習させる。予測(回帰)や分類が得意。 線形回帰、ロジスティック回帰、決定木、ランダムフォレスト、サポートベクトルマシン(SVM)
教師なし学習 「正解」を与えずにデータだけを与え、データに隠れた規則性やグループ分け(クラスタリング)を自ら見つけさせる。 クラスタリング、主成分分析(次元削減)
強化学習 正解は教えず、行動に対して「報酬(スコア)」を与え、試行錯誤を通じてスコアが最大になるような行動を学習させる。(ゲームのAIや自動運転など) -
② 機械学習の注意点(過学習)

過学習 (オーバーフィッティング)

用意した「訓練データ(練習問題)」にばかり適応しすぎてしまい、未知の新しいデータ(本番のテスト)に対する正解率(汎化性能)が落ちてしまう現象のこと。
過去問の丸暗記をしてしまい、少し応用問題が出ると解けなくなる状態に似ています。

対策:交差検証 / ホールドアウト検証

データを「学習用」と「テスト用」に分割し、本当に未知のデータでも正解できるかを検証しながら学習を進める手法。

③ ディープラーニング(深層学習)

人間の脳の神経回路を模した「ニューラルネットワーク」を多層化し、AI自らがデータの特徴を抽出できるようにした高度な機械学習です。

CNN (畳み込みニューラルネットワーク)
画像認識に特化したモデル。画像の一部をスキャン(畳み込み)して特徴を捉えます。
RNN (リカレントニューラルネットワーク)
音声や文章などの「連続した時系列データ」の処理に特化したモデル。
GAN (敵対的生成ネットワーク)
「偽物を作るAI」と「それを見破るAI」を競わせることで、本物そっくりの画像などを生成するAI。
LLM (大規模言語モデル)
ChatGPTの裏側で動いている、膨大な文章データを学習した巨大な言語モデル。
プロンプトエンジニアリング
AIから望み通りの精度の高い回答を引き出すために、入力する指示文(プロンプト)の書き方を工夫・設計するスキルのこと。

(9) コンパイラ理論 / (10) プログラム言語論

コンパイラ(翻訳)の過程

人間が書いたプログラムを、コンピュータがわかる機械語に翻訳する過程です。

字句解析
(単語に分ける)
構文解析
(文法チェック)
意味解析
(意味チェック)
最適化
(無駄を省く)
コード生成
(機械語へ)
プログラム言語の種類
  • 手続型言語:コンピュータに「手順」を順番に指示する言語(C言語など)。
  • オブジェクト指向言語:データと処理をセットにした「モノ(オブジェクト)」を組み合わせて作る言語(Java, Pythonなど)。

4. 通信に関する理論

(1) 伝送理論

データをケーブルや電波に乗せて送るための技術です。

① 多重化方式(1つの線をみんなで使う)
FDM (周波数分割多重)

電波の「周波数(音の高さ)」を少しずつズラして、複数の通信を同時に送る方式。(テレビのチャンネルの仕組み)

TDM (時分割多重)

ごくわずかな「時間」ごとに区切って順番に送信権を回すことで、複数の通信を同時に送る方式。

② 変調方式(デジタルデータを波に変える)
  • AM (振幅変調):波の「高さ(強さ)」を変えて0と1を表す。
  • FM (周波数変調):波の「間隔(周波数)」を変えて0と1を表す。ノイズに強い。
  • PM (位相変調):波の「開始のタイミング(角度)」をズラして0と1を表す。

5. 計測・制御に関する理論

(1) 信号処理

センサーから入ってきた波形データを分析し、ノイズを除去する(フィルタリング)などの処理を行います。デジタルとアナログを変換するA/D変換やD/A変換が使われます。

(2) 制御に関する理論

フィードバック制御とオープンループ制御
フィードバック制御
出力された結果(現在の状態)をセンサーで測り、目標値とのズレを計算して、ズレを修正するように常に入力を調整する制御方式。
例:エアコンの温度調節。部屋が冷えたら自動でパワーを弱める。
オープンループ制御
結果を見ずに、あらかじめ決めた通りの動作を一方的に行う制御方式。
例:扇風機の「強」ボタン。部屋が冷えようが構わず「強」で回り続ける。
センサーとアクチュエーター

コンピュータが現実の世界と関わるための「感覚器官」と「手足」です。

  • ジャイロセンサー:物体の「回転(傾き)」を検知する。スマホの画面回転などに利用。
  • 加速度センサー:物体の「速度の変化(動き)」を検知する。歩数計やゲームのコントローラに利用。
  • アクチュエーター:コンピュータの命令を受けて、電気を物理的な運動(モーターを回す、油圧シリンダを動かすなど)に変換する装置。ロボットの関節など。