ソフトウェアの原子:ブール代数と数値システム

プログラミングの最小単位はBoolean Algebra(ブール代数)です。
これは「真(True)」か「偽(False)」の2値のみを扱う論理体系であり、現代のあらゆる条件分岐の基礎となっています。
動画では「金持ち(Rich)」と「ハンサム(Handsome)」という変数を用い、`AND`(かつ)、`OR`(または)、`NOT`(否定)の演算が、どのように実世界の意思決定を論理モデル化するかを鮮やかに解説しています。
「魔法」に見えるコードも、突き詰めればこの単純な論理の積み重ねに過ぎません。
次に理解すべきはNumeral Systems(進数システム)です。
人間が指の数に基づいた「10進数(Base 10)」を使うのに対し、コンピュータはスイッチのオン・オフに対応する「2進数」で動きます。
このギャップを埋めるために、エンジニアは以下のシステムを使い分けます。
- Base 2(Binary)データの最小単位。2, 4, 8, 16...と倍々で増える。
- Base 16(Hexadecimal)0-9とA-Fを使用。バイナリを簡潔に表現する(例:カラーコード)。
- Base 64画像などのバイナリデータをテキスト文字列としてエンコードする際に多用される。
数値表現において最も注意すべきはFloating Point(浮動小数点数)の精度です。
JavaScriptやPythonで `0.1 + 0.2` を実行すると `0.30000000000000004` のような微細な誤差が生じます。
これはコンピュータが有限のビット数で無限の小数を表現しようとする際に生じる必然的な「丸め誤差」です。
金銭計算など精度が命の処理では、この数学的制約を無視することは致命的なバグに繋がります。
| 精度 | ビット数 | 用途 |
|---|---|---|
| 単精度(Single Precision) | 32-bit | メモリ節約が優先される計算 |
| 倍精度(Double Precision) | 64-bit | JS/Python等のデフォルト精度 |
効率の極意:対数と集合論が解き明かすデータ構造

アルゴリズムの効率を語る上で欠かせないのがLogarithmic functions(対数関数)です。
丸太を半分に切り続けるメタファーで説明される通り、対数は「指数(Exponentiation)」の逆演算です。
エンジニアにとっての対数は、データ量が2倍になっても計算ステップが1しか増えない驚異的な効率性を象徴します。
例えば、100万件のデータから1件を探す際、1つずつ確認すれば100万回かかりますが、対数的なBinary Search(二分探索)ならわずか20回程度の比較で完了します。
データの「集まり」を扱う際には、Set theory(集合論)が威力を発揮します。
リレーショナルデータベース(RDB)のテーブルはまさに「ユニークな値の集合」です。
エンジニアが日常的に使う `JOIN` 操作は、集合論における以下の概念そのものです。
- 1Inner Join交わり(Intersection)。両方の集合に存在する要素のみを抽出。
- 2Full Outer Join和集合(Union)。両方の集合の全要素を結合。
- 3Left/Right Join差集合と交わりの組み合わせ。
これらはDiscrete Math(離散数学)の範疇であり、連続的な値を扱う微積分とは異なり、コンピュータのように「区切られた値」を扱う世界では必須の武器となります。
構造と予測:グラフ理論から統計学へ

現実世界の複雑な関係性をモデル化するのがGraph Theory(グラフ理論)です。
SNSの友人関係、道路ネットワーク、ウェブページのリンク構造などは、すべて「ノード(点)」と「エッジ(線)」で表現されます。
動画では、ダイクストラ(Dijkstra's)アルゴリズムによる最短経路探索を例に、地図アプリがいかに効率的にルートを導き出しているかを解説しています。
また、現代のトレンドであるAIを理解するにはStatistics(統計学)が避けて通れません。
機械学習とは、詰まるところ「高度な統計処理」の別名です。
特に以下の2つの回帰分析の違いを理解することは重要です。
- Linear Regression(線形回帰)株価の予測など、連続的な数値を予測する。
- Logistic Regression(ロジスティック回帰)「この画像はホットドッグか否か」といった分類(二値判定)を行う。ここではSigmoid function(シグモイド関数)が確率を算出するために使われます。
AIと物理演算を操る「線形代数」の魔力

最後に、最も難解とされるLinear Algebra(線形代数)に触れます。
これは3Dグラフィックス、ニューラルネットワーク、そしてRSA encryption(RSA暗号)など、現代技術の最前線を支える学問です。
基本単位となるのは、単一の値である「Scalar(スカラー)」、1次元配列の「Vector(ベクトル)」、そして2次元格子の「Matrix(行列)」です。
3Dゲームでキャラクターが移動したり回転したりする際、背後では行列の掛け算によるLinear Transformation(線形変換)が瞬時に行われています。
座標ベクトルに行列を掛けることで、スケーリング(拡大縮小)、回転、剪断(シア)などが実現されます。
数学は単なる理論ではなく、スクリーン上の光を制御する魔法の杖なのです。
