第 1 章 基礎理論
コンピュータは 0 と 1 で考える。この章では次の 30 個の知識点を、解説・インタラクティブ教材・練習問題で学びます。
ビットとバイト・n ビットで表せる数・補助単位
0/1 の箱=ビット、8 個で 1 バイト。n ビットで 2ⁿ 通りを表せること、逆に「何ビット必要か」、k・M・m・μ などの補助単位の換算を即答できるようにする。
n進数の考え方・基数と重み
n進数は「n 個の記号を使い、n 個集まると繰り上がる」数え方。各桁の重みは基数のべき乗(整数部 n⁰, n¹, n² … / 小数部 n⁻¹, n⁻² …)であることを理解する。
n進数 → 10進数
「各桁の数字 × 重み を全部足す」だけ。2・8・16進数(小数を含む)を10進数に直せるようにする。
10進数 → 2進数の基数変換
整数部は「2 で割って余りを下から」、小数部は「2 を掛けて整数部を上から」。この 2 つの手順で、どんな10進数も2進数に直せるようになる。
2・8・16進数の相互変換
2進数 ⇄ 8進数は 3 桁ずつ、2進数 ⇄ 16進数は 4 桁ずつ。区切りは小数点から外側へ、足りない所は 0 で埋める。10進数からは「一度2進数を経由」するのが最短。
2進数の足し算・符号ビット・補数
2進数の足し算は「1 + 1 = 10(繰り上がり)」だけ注意。コンピュータは引き算を「補数の足し算」で行う。先頭の符号ビットと、n の補数・n−1 の補数の意味を理解する。
2の補数による負数の表現と減算
「ビット反転して +1」で負の数を作り、引き算を足し算に変える。8 ビットで表せる範囲 −128〜127 を即答できるようにする。
論理シフト
ビット列を左に n ずらすと ×2ⁿ、右に n ずらすと ÷2ⁿ。空いた所には 0 を入れ、はみ出たビットの意味(オーバーフロー/余り)を説明できるようにする。
算術シフト
算術シフトは符号ビットを動かさないシフト。右シフトでは空きに符号ビットと同じ値を入れ、左シフトでは符号と違うビットがはみ出たらオーバーフロー。負の数も正しく 2ⁿ 倍・1/2ⁿ 倍できる。
シフトと加算による掛け算
掛ける数を 2 のべき乗の和に分解すれば、掛け算は「左シフト+足し算」だけでできる。例:×10 = ×8 + ×2 = (3 ビット左シフト)+(1 ビット左シフト)。
固定小数点と浮動小数点(IEEE754)
固定小数点は小数点の位置が決まっている表し方、浮動小数点は「仮数 × 2^指数」で小数点を動かせる表し方。IEEE754 単精度は 符号 1・指数 8(バイアス 127)・仮数 23 ビット。10進数から 32 ビットを組み立てられるようにする。
誤差の種類
コンピュータの計算で生じる 5 つの誤差(桁あふれ・情報落ち・桁落ち・打切り・丸め)を、場面を見て即座に見分けられるようにする。
論理演算・ベン図・真理値表
「かつ」=論理積(AND)、「または」=論理和(OR)、「でない」=否定(NOT)。同じ関係をベン図・真理値表・論理式の 3 通りで表せるようにする。
6 つの論理回路(AND・OR・NOT・NAND・NOR・XOR)
6 つの論理回路について、真理値表・論理式・ベン図を相互に変換できるようにする。特に「N がつくと出力が逆」「XOR は違うときだけ 1」を体で覚える。
ド・モルガンの法則と論理式の法則
ド・モルガンの法則「線を切ったら記号を変える」(、)と、・・分配法則などを使って論理式を変形できるようにする。
論理回路・論理式の総合問題
組み合わせた回路は、途中の出力を 1 つずつ書き出して真理値表を作れば必ず解ける。論理式で変形する別解(分配法則+)も使えるようにする。
半加算器・全加算器
半加算器は 1 ビット同士の足し算回路で、和 S = XOR、桁上げ C = AND。全加算器は下位からの桁上げも含めて 3 ビットを足す回路(半加算器 2 つ+OR)。
状態遷移図
状態遷移図は「今の状態 + 入力 → 出力 + 次の状態」を ○ と矢印で表した図。矢印のラベル「入力/出力」を 1 つずつたどり、状態遷移表に書き出せば必ず解ける。
ビット演算とマスク
元のビット列とマスクパターンを桁ごとに論理演算して、特定の桁だけを操作する。取り出し=AND、反転=XOR、1 にする=OR。操作したい桁を 1、それ以外を 0 にしたマスクを作るのが基本。
確率と場合の数(順列・組合せ)
確率 =(起こる場合の数)÷(全部の場合の数)。場合の数は、並べるなら順列 、選ぶだけなら組合せ 。「かつ」は掛け算(積の法則)、「または」は足し算(和の法則)。「少なくとも」は 1 から引く。
期待値・条件付き確率
期待値は 1 回あたりの平均で、(確率 × 値)をすべて足す。「〜だったとき、それが A である確率」(条件付き確率)は、条件に当てはまるものだけに絞ってその中の割合を求める。
行列の基本と行列の積
行列は数を縦横に並べたもので、大きさは「行数×列数」。足し算・引き算・スカラー倍は要素ごとに計算。行列の積は「内側が等しいときだけ計算でき、結果は外側の大きさ」、各要素は「左の行 × 右の列」を掛けて足す。
単位行列・逆行列・連立方程式
単位行列 は対角が 1、他が 0 の正方行列で、掛けても相手を変えない(数の 1 のような役割)。 に掛けて になる行列が逆行列 。連立方程式は行列で表し、行基本変形で左側を単位行列にすれば解が右側に現れる。
度数分布・代表値・分散と標準偏差
度数分布表は階級ごとのデータ数、ヒストグラムはそのグラフ。代表値は 平均値(合計÷個数)・中央値(並べて真ん中)・最頻値(一番多い値)。ばらつきは 分散(ずれの 2 乗の平均)と標準偏差(√分散) で表す。
正規分布・相関係数・歪度と尖度
分布の「形」を数字で読む。平均 ± 2σ に約 95%、相関係数は −1〜1、散布図の傾きと符号、歪度・尖度の正負を図から判断できるようにする。
相関と因果・統計的分析手法
相関は「一緒に増減する」関係、因果は「原因と結果」の関係。相関があっても因果があるとは限らない(第 3 の変数による疑似相関)。分析手法は 説明変数 1 つ→単回帰、複数→重回帰、結果がカテゴリ→ロジスティック回帰、関係の強さ→相関分析、要約→主成分分析。
仮説検定と 2 種類の誤り
仮説検定は、ある仮説(帰無仮説)が正しいかを統計的に確かめる方法。第一種の誤り=本当は仮説が正しいのに不採用(棄却)にする、第二種の誤り=本当は仮説が間違っているのに採用してしまう。両方を同時にゼロにはできないので、バランスを取る。
ハフマン符号化
ハフマン符号化は、よく出る文字ほど短いビット列を割り当ててデータ量を減らす圧縮方法。出現頻度の小さい 2 つを繰り返しまとめて木を作り、枝に 0/1 を振る。平均ビット長=Σ(ビット数 × 出現確率)。
逆ポーランド記法
逆ポーランド記法(後置記法)は演算子を後ろに書く記法: → AB+。括弧が不要で、スタックを使って左から順に計算できる。変換は「左 → 右 → 演算子」の順に書き出すだけ。
BNF 記法
BNFはプログラミング言語やデータ形式の文法を書き表す記法。::=「〜と定義する」、|「または」、<名前>「定義された記号」。自分自身を使った定義(<数> ::= <数字> | <数><数字>)で「くり返し」を表す。