※小説ではない※専門書 要約資料集 為替(換算)3.9万円でもらう 紐解集生成 専門 初入門 資料 作:{作者名}
> 学問の宇宙・形式科学の恒星群 数学冠・算術派生 後半第2巻。ガイド役: Fable 5 監修 / Sonnet 5 執筆(脚本班)
> トーン規約: GAKUMON_UNIVERSE.md準拠。専門用語は初出で必ず説明する。
> 字数規約: 本冊は構造完全性(七章構成+終章+検算総覧+相互リンク網羅)を優先した結果、規定の12,000〜18,000字をやや超過している(§16.22準拠・超過理由を本行に明記)。
> 前提: →BOOK-0002(算術第1冊、水準一〜四)で「数える・逆再生する・分ける・見る」という四つの基本動作——足し算/引き算、掛け算/因数分解、分数、グラフ——を扱った。本冊はその続きとして、水準五〜六(後半)に位置する「数をどう書き表し、書き表した数をどう検算し、割り切れない数とどう付き合うか」という、算術のもう一段深い技術群を扱う。
> 重複回避の方針: →BOOK-0074『数論』第1巻・→BOOK-0127『数論第2巻』は「整数そのものの性質」(素数・合同式・フェルマーの小定理)を主役に据えた独立宇宙だった。本冊は数論の道具(合同式・互除法)を一部借りるが、主役はあくまで「数を書き表し・計算し・確かめる技術」側であり、素数の性質そのものの探究には深入りしない。
> 水準: 五〜六(後半)。
> 相互リンク: →BOOK-0002(前提巻) →BOOK-0074(数論第1巻) →BOOK-0127(数論第2巻) →BOOK-0201(数学達人技_暗算) →BOOK-0202(数学達人技_割り算と概算) →BOOK-0010(コンピュータの始まり・bit) →BOOK-0075(集合と論理) →DIC-0008(単位と計測辞典)
---
# BOOK-0136 算術 第2巻 — 数を書き表し、計算し、確かめる技術(数学派生 後半第2巻)
> 学問の宇宙・形式科学の恒星群 数学冠・算術派生 後半第2巻。ガイド役: Fable 5 監修 / Sonnet 5 執筆(脚本班)
> トーン規約: GAKUMON_UNIVERSE.md準拠。専門用語は初出で必ず説明する。
> 字数規約: 本冊は構造完全性(七章構成+終章+検算総覧+相互リンク網羅)を優先した結果、規定の12,000〜18,000字をやや超過している(§16.22準拠・超過理由を本行に明記)。
> 前提: →BOOK-0002(算術第1冊、水準一〜四)で「数える・逆再生する・分ける・見る」という四つの基本動作——足し算/引き算、掛け算/因数分解、分数、グラフ——を扱った。本冊はその続きとして、水準五〜六(後半)に位置する「数をどう書き表し、書き表した数をどう検算し、割り切れない数とどう付き合うか」という、算術のもう一段深い技術群を扱う。
> 重複回避の方針: →BOOK-0074『数論』第1巻・→BOOK-0127『数論第2巻』は「整数そのものの性質」(素数・合同式・フェルマーの小定理)を主役に据えた独立宇宙だった。本冊は数論の道具(合同式・互除法)を一部借りるが、主役はあくまで「数を書き表し・計算し・確かめる技術」側であり、素数の性質そのものの探究には深入りしない。
> 水準: 五〜六(後半)。
> 相互リンク: →BOOK-0002(前提巻) →BOOK-0074(数論第1巻) →BOOK-0127(数論第2巻) →BOOK-0201(数学達人技_暗算) →BOOK-0202(数学達人技_割り算と概算) →BOOK-0010(コンピュータの始まり・bit) →BOOK-0075(集合と論理) →DIC-0008(単位と計測辞典)
---
## 序章 — 第1冊のおさらいと、本冊で歩く道
→BOOK-0002では、足し算が「数え直しを束ねる裏技」であり、掛け算が「足し算の早業」、因数分解が「掛け算の早業を逆再生する探索」であることを見た。分数は「割り算の答えをそのまま保存する記法」として、割り切れない世界と折り合いをつける発明として登場した。
本冊が向かうのは、その続きにある一段深い問い——**「10という数を特別扱いしなくても数は書けるのか」「書いた数が正しいかどうかを、もう一度全部計算し直さずに確かめる方法はないか」「割り切れない数は、いったいどこまで割り切れないのか」**——である。位取り記数法の一般化から始め、合同算術という検算の武器を手に入れ、ユークリッド互除法で数論との橋を架け、循環小数と連分数で「割り切れなさ」そのものの構造をたどり、概算とフェルミ推定で「厳密でなくても役に立つ計算」の作法を学び、最後にコンピュータの中で算術がどう実装されているか、そしてBOOK-0201/0202で紹介された暗算の達人技がなぜ効くのかという理屈側を確認して、この巻を締めくくる。
---
## 第一章: 位取り記数法の一般化 — 10進法はなぜ「10」なのか
### 10進法という一つの選択
→BOOK-0002第一章では、位取り(くらいどり、水準一: 数字を置く場所によって、その数字が表す大きさが変わる仕組み)とゼロという発明が、位取り記数法(いちどりきすうほう、水準五: ある基準の数〈基数〉のべき乗を単位として、数を位ごとの数字の並びで表す方法)を完成させたことを見た。私たちが普段使っている10進法(じっしんほう、水準五: 基数を10とする位取り記数法。0から9までの10種類の数字を使う)は、`123` という数字を「`1×10² + 2×10¹ + 3×10⁰`」という意味で読んでいる。
ここで大事な気づきがある。**10という基数は、数学的に特別な数ではない**。人類の指が10本だったという身体的な理由でたまたま定着しただけであり、基数は2でも16でも60でも、位取りの仕組みさえ守れば同じように機能する。本章では、この「基数」という部品を10以外に取り替えても、位取り記数法そのものの骨格は少しも揺るがないことを、実際に手を動かして確かめる。
### 2進法 — コンピュータの母国語
**2進法(にしんほう、水準五: 基数を2とする位取り記数法。0と1の2種類の数字だけを使う)**は、`1×2³ + 1×2² + 0×2¹ + 1×2⁰` のように、2のべき乗を単位として数を表す。使える数字が0と1の2つしかないため、電気が「流れている/流れていない」という2状態(→BOOK-0010で扱われる**bit〈ビット〉**の正体)と相性がよく、現代のコンピュータの内部表現の基礎になっている。
### 16進法とバビロニアの60進法
**16進法(じゅうろくしんほう、水準五: 基数を16とする位取り記数法。0〜9の数字に加え、10〜15を表すA〜Fの6文字を使う)**は、2進法4桁分(0000〜1111)をちょうど1文字で表せる(4桁の2進数は0〜15の16通りなので16進の1桁と過不足なく対応する)ため、2進数を人間が読みやすい形に圧縮する目的でコンピュータの世界でよく使われる。
一方、位取り記数法の基数は10や2に限らない。古代メソポタミアの**バビロニア(水準五: 紀元前のメソポタミア文明。楔形文字の粘土板に数学の記録を残した)**では、**60進法(ろくじゅっしんほう、水準五: 基数を60とする位取り記数法)**が使われていた。60は2, 3, 4, 5, 6, 10, 12, 15, 20, 30という多くの数で割り切れる「約数の多い数」であり、分数計算がしやすいという実務上の利点があったと考えられている。現代に残るその痕跡が、1時間=60分、1分=60秒という時間の単位や、円周を360度(60×6)に分ける角度の単位である。バビロニアの60進法は完全な位取り記数法ではなく、位取りの補助にゼロに相当する記号を持たない時期が長かったとされ(諸説あり、時代によって空白や記号での対応が見られる)、この点は次節で扱うゼロの記号化の重要性を裏側から照らす好例になっている。
### ゼロという記号の完成 — インドからヨーロッパへ
→BOOK-0002第一章では、ゼロという記号の体系化に**ブラーマグプタ(598年頃 - 668年頃、インドの数学者・天文学者)**が関わったことに軽く触れた。本章ではもう一歩踏み込む。ブラーマグプタは**628年頃**に著した数学書**『ブラーマスプタシッダーンタ(Brāhmasphuṭasiddhānta)』**の中で、ゼロを単なる「位取りの空白を埋める記号」から一歩進め、ゼロを使った加減乗算の規則(たとえば「正の数と負の数を足すと、その差の符号は絶対値の大きいほうに従う」といった規則)を体系的に記述したとされる。これは、ゼロを「何もないことを表す記号」から「四則演算に参加できる数そのもの」へと格上げする、位取り記数法の完成に向けた決定的な一歩だった。
このインド式の位取り記数法(ゼロを含む0〜9の数字と、その位取りの規則)は、その後アラビア世界の学者たちを経由してヨーロッパへ伝わった。この伝播の代表的な担い手として広く知られているのが、イタリアの数学者**レオナルド・フィボナッチ(Leonardo Fibonacci、1170年頃 - 1250年頃)**であり、彼が**1202年**に著した**『算盤の書(そろばんのしょ、Liber Abaci)』**が、インド・アラビア式の数字と位取り記数法をヨーロッパの商人階級に広める上で重要な役割を果たしたとされている。それまでヨーロッパで主流だったローマ数字(位取りを持たない記数法)による計算の不便さと比べ、位取り記数法とゼロの組み合わせがいかに計算を効率化するかを、フィボナッチは実務的な計算例を通じて示した。算術という恒星の「最初の光」の一部だったゼロという発明が、インドから始まり、アラビア世界を経て、13世紀のイタリアで商人たちの手に渡るまでに、実に600年近い歳月をかけて地球を半周したことになる。
---
## 第二章: 基数変換の計算 — 10進と2進・16進を行き来する
### 10進から2進への変換 — 2で割り続ける
10進の数を2進に変換する標準的な手順は、**「2で割り続け、その余りを下から順に並べる」**というものである。実際に `202`(10進)を2進に変換してみよう。
```
202 ÷ 2 = 101 余り 0
101 ÷ 2 = 50 余り 1
50 ÷ 2 = 25 余り 0
25 ÷ 2 = 12 余り 1
12 ÷ 2 = 6 余り 0
6 ÷ 2 = 3 余り 0
3 ÷ 2 = 1 余り 1
1 ÷ 2 = 0 余り 1
```
余りを下から上へ順に並べると `11001010` となる。
**検算(自己検算・実測)**: 2進数 `11001010` を10進に戻して確かめる。右から順に2の0乗、1乗、2乗…と位を割り当てると、
```
11001010₂ = 1×2⁷ + 1×2⁶ + 0×2⁵ + 0×2⁴ + 1×2³ + 0×2² + 1×2¹ + 0×2⁰
= 128 + 64 + 0 + 0 + 8 + 0 + 2 + 0
= 202
```
`128 + 64 = 192`、`192 + 8 = 200`、`200 + 2 = 202`。元の `202` と完全に一致した(検算済み)。したがって `202 = 11001010₂` である。
### 10進から16進への変換
同じ `202` を16進に変換してみよう。手順は「16で割り続け、余りを下から並べる」である。
```
202 ÷ 16 = 12 余り 10(10進の10は16進で「A」)
12 ÷ 16 = 0 余り 12(10進の12は16進で「C」)
```
余りを下から並べると `C, A` となり、`202 = CA₁₆` である。
**検算(自己検算・実測)**: `CA₁₆` を10進に戻す。`C=12`、`A=10` なので、`C×16¹ + A×16⁰ = 12×16 + 10×1 = 192 + 10 = 202`。元の `202` と一致した(検算済み)。
### バビロニア風60進への変換(概念の確認)
第一章で触れた60進法の感覚を、`202` という同じ数で確かめておこう。60進では60ごとに桁が上がるので、`202 ÷ 60 = 3` 余り `22` となり、`202` は60進で「3, 22」(60の位が3、1の位が22)と表せる。
**検算(自己検算・実測)**: `3×60 + 22 = 180 + 22 = 202`。一致した(検算済み)。同じ `202` という数が、基数の選び方一つで `11001010`(2進)、`CA`(16進)、「3, 22」(60進)というまったく違う見た目になる——これが位取り記数法における「基数は着せ替え可能な部品」であることの具体的な実感である。
---
## 第三章: 合同算術(mod)の入口と検算術 — 九去法はなぜ効くか
### 合同算術のおさらいと、本冊での使い道
→BOOK-0074第五章で、**合同式(ごうどうしき、水準三: ある数で割った余りだけに注目して、数どうしの関係を考える算術の体系)**と**mod(モッド、水準三: `a mod n` は、`a`を`n`で割った余りを意味する記法)**を、時計の文字盤の比喩で紹介した。本冊ではこの道具を、**「計算した答えが正しいかどうかを、もう一度全部計算し直さずに確かめる」**という、極めて実務的な目的のために使う。
### 九去法 — 掛け算の答えを一瞬で検算する
**九去法(くさりほう、水準五: ある数の各桁の和を9で割った余りが、元の数を9で割った余りと必ず一致するという性質を利用した検算法)**は、大きな数同士の掛け算の答えが「桁の間違いをしていないか」を素早く確認する古典的な検算術である。
まず、なぜこの技が成立するのかを合同式の言葉で確認しよう。核心は次の一行に尽きる。
```
10 ≡ 1 (mod 9)
```
これは「10を9で割ると余り1」という意味であり、`10 = 9×1 + 1` なので確かに正しい。合同式には「合同な数同士は、足し算・掛け算をしても合同な関係が保たれる」という性質があるため、`10 ≡ 1 (mod 9)` から `10² ≡ 1² = 1 (mod 9)`、`10³ ≡ 1 (mod 9)` …と、10のどんなべき乗も9で割った余りは常に1のままだとわかる。
ここで、たとえば `4318` という数を位取りの意味で書き下すと `4×10³ + 3×10² + 1×10¹ + 8×10⁰` である。先ほどの性質により、この式の `10³`、`10²`、`10¹` の部分はすべて「9で割った余りの世界」では1に置き換えてよい。つまり
```
4318 ≡ 4×1 + 3×1 + 1×1 + 8×1 = 4+3+1+8 (mod 9)
```
という関係が成り立つ。**「ある数を9で割った余り」は「その数の各桁を単純に足し合わせたものを9で割った余り」と必ず一致する**——これが九去法の理屈の核心である(BOOK-0202技2で紹介された「3・9の倍数判定=桁の和を見る」という達人技も、この同じ性質「9で割った余りが桁和と一致する」の特別な場合〈余りがちょうど0になるケース〉にあたる。本冊はその一段手前にある「なぜ9を法とした合同がここまで都合よく働くか」という理屈の側を担当している)。
### 掛け算の検算を実演する
`47 × 86` という掛け算を検算してみよう。まず筆算で答えを出すと、
```
47 × 86 = 4042
```
これが正しいかどうかを九去法で確かめる。まず両方の数の「桁の和を9で割った余り」を求める。
```
47 → 4+7 = 11 → 1+1 = 2(さらに一桁になるまで足す)
86 → 8+6 = 14 → 1+4 = 5
```
この2つの「九去法の余り」を掛け合わせ、また9で割った余りを取る。
```
2 × 5 = 10 → 1+0 = 1
```
次に、実際の答え `4042` についても同じ処理をする。
```
4042 → 4+0+4+2 = 10 → 1+0 = 1
```
**検算(自己検算・実測)**: 左辺(47と86の九去法の余りの積の九去法)が `1`、右辺(答え4042の九去法)も `1`。両者が一致した(検算済み)。もし計算ミスがあれば、この2つの数字は一致しない可能性が高く(ただし後述の限界があるため「一致すれば必ず正しい」とは言えない)、間違いに気づく手がかりになる。
### 九去法の限界 — 見抜けない間違いもある
九去法には重要な限界がある。**九去法は「不一致なら間違いがあると断言できる」が、「一致したからといって絶対に正しいとは言い切れない」**という非対称な性質を持つ。理由は単純で、九去法は数字の並び順(桁の位置)の情報を捨てて、和だけを見る検算法だからである。たとえば答えの桁を入れ替えてしまうミス(`4042` を `4024` と書き間違えるなど)は、桁の和がまったく変わらないため九去法では発見できない。**検算(自己検算・実測)**: `4024` の桁の和も `4+0+2+4=10→1`であり、`4042`と同じ九去法の余りになってしまう。九去法は「見落としがちな大きなミス」をふるい落とす一次検査であり、万能の証明ではないという限界(BOOK-0201/0202の型に倣えば「限界」の明記)を必ず添えて使うべき技である。
---
## 第四章: ユークリッド互除法とGCD/LCM — 数論への橋
### 最大公約数を効率よく求める
→BOOK-0074第一章では、**最大公約数(さいだいこうやくすう、水準一: 二つ以上の整数に共通する約数のうち、もっとも大きいもの)**を「両方の約数を全部書き出して比べる」方法で求めた。この方法は数が大きくなると非常に非効率になる。ここで登場するのが**ユークリッド互除法(ユークリッドごじょほう、水準五: 大きいほうの数を小さいほうの数で割った余りに置き換える操作を、余りが0になるまで繰り返すことで最大公約数を求める手順)**である。この手法は→BOOK-0074第三章で紹介した「素数は無限にある」証明と同じ**エウクレイデス(ユークリッド、紀元前3世紀ごろ)**の著書『原論』に記されている、古代から伝わるアルゴリズムである。
### 1071と462で実演する
`1071` と `462` の最大公約数を、ユークリッド互除法で求めてみよう。手順は「大きいほうを小さいほうで割り、その余りで小さいほうを置き換える」を繰り返すだけである。
```
1071 ÷ 462 = 2 余り 147 (1071 = 2×462 + 147)
462 ÷ 147 = 3 余り 21 ( 462 = 3×147 + 21)
147 ÷ 21 = 7 余り 0 ( 147 = 7× 21 + 0)
```
余りが0になった時点で、その直前の割る数(この場合 `21`)が最大公約数である。
**検算(自己検算・実測)**: `1071 ÷ 21 = 51`、余りなし。`462 ÷ 21 = 22`、余りなし。両方とも21で割り切れることが確認できた(検算済み)。さらに `51` と `22` に1以外の共通の約数がないこと(`51=3×17`、`22=2×11` で共通因数なし)も確認でき、`21` がこれ以上大きくできない最大公約数であることが裏付けられる。
### 最小公倍数もついでに求める
→BOOK-0074第一章で紹介された「`(最大公約数) × (最小公倍数) = (元の二つの数の積)`」という関係を使えば、最小公倍数もすぐに求まる。
```
最小公倍数 = (1071 × 462) ÷ 21
```
**検算(自己検算・実測)**: `1071 × 462 = 494,802`。これを `21` で割ると `494802 ÷ 21 = 23562`。さらに検算として、`23562 ÷ 1071 = 22`(余りなし)、`23562 ÷ 462 = 51`(余りなし)の両方を確認した(検算済み)。したがって `1071` と `462` の最大公約数は `21`、最小公倍数は `23562` である。
### なぜ余りに置き換えてよいのか、そして数論への橋
ユークリッド互除法が正しく機能する理由は、「`a` と `b` の最大公約数は、`a` を `b` で割った余り `r` と `b` の最大公約数に等しい」という性質にある。これは、`a = q×b + r` と書けるとき、`a` と `b` を割り切る数は必ず `r`(`= a - q×b`)も割り切る、という約数の性質から導かれる。この手続きを繰り返すごとに扱う数がどんどん小さくなっていき、有限回の操作で必ず余り0に到達する。
素因数分解による最大公約数の求め方(→BOOK-0074第二章で紹介した「共通する素数を小さいほうの指数で掛け合わせる」方法)と比べ、ユークリッド互除法は**大きな数を素因数分解する必要が一切ない**という利点を持つ。この互除法を逆向きにたどり、二つの数の一次結合で最大公約数を表す係数を求める「拡張ユークリッドの互除法」という発展形は、現代の公開鍵暗号の鍵生成の内部でも実際に使われている手続きである(本冊では名前の紹介にとどめ、詳しい手順は終章の未到達部類に譲る)。整数の性質そのものを探究する→BOOK-0074・→BOOK-0127の数論という宇宙と、本冊が扱う「計算の技術」という宇宙は、このユークリッド互除法という一本の橋でしっかりつながっている。
---
## 第五章: 分数と循環小数 — 割り切れなさの正体
### 1/7を実際に割り続けてみる
→BOOK-0002第二章で、分数は「割り算の答えを、割り切れなくてもそのまま保存しておける記法」として紹介された。ここでは、分数を小数に直したときに何が起きるかを実際に手を動かして確かめる。
`1 ÷ 7` の筆算を実行すると、次のような余りの移り変わりが起きる。
```
1.0000000... ÷ 7
10 ÷ 7 = 1 余り 3 → 商の1桁目: 1
30 ÷ 7 = 4 余り 2 → 商の2桁目: 4
20 ÷ 7 = 2 余り 6 → 商の3桁目: 2
60 ÷ 7 = 8 余り 4 → 商の4桁目: 8
40 ÷ 7 = 5 余り 5 → 商の5桁目: 5
50 ÷ 7 = 7 余り 1 → 商の6桁目: 7
10 ÷ 7 = 1 余り 3 → 余りが最初の「3」に戻った!
```
商を並べると `0.142857142857...` となり、`142857` という6桁のかたまりが同じ順番でずっと繰り返される。この繰り返しの単位を**循環節(じゅんかんせつ、水準五: 循環小数において、無限に繰り返される数字のかたまり)**と呼び、循環している範囲を示すために `0.1̇42857̇`(最初と最後の数字の上に点を打つ表記)と書く。
**検算(自己検算・実測)**: 循環節の長さは6桁であり、これは割る数である `7` より1小さい `6` と一致している(このように循環節の長さが割る数より小さい整数値におさまることは一般に成り立つ性質であり、実際に何桁になるかは割る数の性質によって変わる)。また `142857 × 7 = 999999` となることも実際に掛け算で確認でき(`142857×7`: `142857×7=999999`、検算済み)、循環節がぴったり「9が並ぶ数」を作る、という分数と9の位取りの間の美しい関係も見て取れる。
### なぜ余りが有限個しかないと循環せざるを得ないのか
`1/7` の筆算では、割り算の途中で登場する余りが `3, 2, 6, 4, 5, 1` と6種類しか現れず、7回目でまた最初の `3` に戻ってきた。これは偶然ではない。`n` で割る筆算において、余りとして現れうる値は `0` から `n-1` までの**高々n通り**しかない(→BOOK-0074の合同式の言葉で言えば「mod nの世界」には n 通りの居場所しかない)。割り切れる場合(余りが0になる場合)を除けば、有限個の可能性しかない余りをどこまでも生成し続けるのだから、いつか必ず**前に出てきた余りと同じ余りが再登場する**(これは「鳩の巣原理」という、有限の箱に無限の物を入れれば必ずどこかの箱に2個以上入るという単純明快な原理の一例でもある)。同じ余りが再登場すれば、その後の割り算の手順(商の出方)もまったく同じ繰り返しになるため、循環が発生することが保証される。
**割り切れる分数(有限小数になるもの)と、割り切れずに循環する分数の違いは、分母を素因数分解したときに2と5以外の素因数を持つかどうかで決まる**(10進法の基数10が `2×5` という素因数分解を持つため)。`1/7` の分母 `7` は2でも5でもない素数なので必ず循環し、`1/8`(`8=2³`)のように2と5だけでできた分母は必ず有限小数で割り切れる。
---
## 第六章: 連分数の入口 — √2と黄金比を、分数の入れ子で表す
### 連分数とは何か
**連分数(れんぶんすう、水準六: 整数部分と、分母の中にまた分数を含む形を入れ子状に繰り返して数を表す表現方法)**は、通常の分数とは別の角度から数を書き表す方法である。一般の形は次のようになる。
```
a₀ + 1/(a₁ + 1/(a₂ + 1/(a₃ + ...)))
```
このとき、一連の整数 `a₀, a₁, a₂, ...` を並べて `[a₀; a₁, a₂, a₃, ...]` と略記する。
### √2の連分数展開
**√2(水準五: 2乗すると2になる正の数。約1.41421356...で、分数として表せない無理数)**を連分数で表すと、次のような美しく単純な繰り返しになることが知られている。
```
√2 = [1; 2, 2, 2, 2, ...]
```
これがなぜ成り立つのか、その仕組みを実際にたどってみよう。まず `√2` の整数部分は `1`(`1²=1 < 2 < 4=2²` なので、`√2` は1と2の間にある)。残りの端数部分 `√2 - 1` の逆数を計算すると、
```
1/(√2 - 1) = (√2 + 1)/((√2-1)(√2+1)) = (√2+1)/(2-1) = √2 + 1
```
**検算(自己検算・実測)**: 分母の有理化(分母に無理数が残らないよう、分母と分子に同じ数〈ここでは `√2+1`〉を掛ける手法)により `(√2-1)(√2+1) = 2 - 1 = 1` となるため、`1/(√2-1) = √2+1` という結果になる。この `√2+1` の整数部分は `2`(`√2≈1.414` なので `√2+1≈2.414`)であり、端数部分はまた `√2 - 1` に戻る。つまり「整数部分2を取り出し、端数の逆数を取ると、また同じ√2-1のパターンに戻る」というループが発生するため、`[1; 2, 2, 2, ...]` と2がどこまでも繰り返される連分数になる。
### 途中で打ち切った近似値の精度を検算する
連分数は、途中で打ち切ることで**有理数(分数)による無理数の近似値**を作り出せる。
```
[1] = 1
[1;2] = 1 + 1/2 = 1.5
[1;2,2] = 1 + 1/(2+1/2) = 1 + 1/2.5 = 1 + 0.4 = 1.4
[1;2,2,2] = 1 + 1/(2+1/(2+1/2)) = 1 + 1/(2+0.4) = 1 + 1/2.4 = 1 + 0.41666... ≈ 1.41667
```
**検算(自己検算・実測)**: `√2` の実際の値は `1.41421356...` である。打ち切りを1段深くするごとに、近似値は `1 → 1.5 → 1.4 → 1.41667` と真の値の周りを上下に挟むように近づいていく(`1.5`は真の値より大きく、`1.4`は真の値より小さく、`1.41667`は真の値よりわずかに大きい、という具合に真の値を挟み込みながら精度が上がっていくことが実際の数値から確認できる)。
### 黄金比φの連分数 — もっとも「割り切れにくい」数
**黄金比(おうごんひ、φ〈ファイ〉、水準六: `(1+√5)/2` で表される、約1.6180339...の無理数。もっとも美しいとされる比率として建築や美術でも言及される)**の連分数展開は、すべての連分数の中でもとりわけ特徴的な形をしている。
```
φ = [1; 1, 1, 1, 1, ...]
```
**検算(自己検算・実測)**: `φ` が満たす方程式 `φ² = φ + 1` を使って確かめる。`φ = 1 + 1/φ` という関係を認めれば(両辺に `φ` を掛けると `φ² = φ + 1` になり、これは黄金比の定義そのものと一致する)、右辺の `1/φ` の中にまた同じ `φ = 1+1/φ` を代入し続けることで `1 + 1/(1+1/(1+1/(1+...)))` という、1だけがどこまでも並ぶ連分数が導かれる。実際に途中まで計算すると、`[1]=1`、`[1;1]=1+1/1=2`、`[1;1,1]=1+1/(1+1/1)=1+1/2=1.5`、`[1;1,1,1]=1+1/(1+1/(1+1/1))=1+1/(1+0.5)=1+0.6667≈1.6667`、`[1;1,1,1,1]≈1+1/(1+1/1.6667)≈1+1/1.6=1.625` と、真の値 `1.6180339...` の周辺を行き来しながら次第に近づいていく様子が確認できる。
黄金比の連分数がすべて `1` だけで構成されているという事実は、「黄金比はあらゆる無理数の中でもっとも有理数で近似しにくい数である」という性質と直結している(連分数の途中の数〈本冊での `a₁, a₂, ...` にあたる部分〉が大きいほど、その手前で打ち切った近似値の精度が急によくなる性質があるため、逆にすべてが最小の `1` である黄金比は、どの段階で打ち切っても精度の「ご褒美」が一番少ない、もっとも粘り強く割り切れない数だと言える)。
---
## 第七章: 概算と有効数字 — フェルミ推定の入口と誤差の伝わり方
### 概算という技術の位置づけ
ここまで見てきた基数変換・合同算術・連分数は、いずれも「厳密に正確な答え」を追求する技術だった。本章では視点を変え、**「厳密でなくても、桁数がだいたい合っていれば十分役に立つ」**という、算術のもう一つの実務的な柱を扱う。
### フェルミ推定 — 桁数だけを言い当てる技術
**フェルミ推定(フェルミすいてい、水準六: 詳しいデータがなくても、大まかな仮定の連鎖から現実的な桁数の見積もりを導く手法)**は、物理学者**エンリコ・フェルミ(1901年 - 1954年、イタリア出身の物理学者)**が得意としたとされる概算の作法にちなんで名付けられている。核心は「わからないものを、わかるものの掛け算に分解し、それぞれの桁だけを当てにいく」という発想である。
たとえば「ある都市にピアノの調律師は何人いるか」という有名な例題は、「人口」「ピアノを持つ世帯の割合」「1台あたりの年間調律回数」「調律師1人がこなせる年間件数」といった、個別には不確かでも桁数の見当がつけやすい要素の掛け算に分解することで、最終的な答えの桁数をおおよそ言い当てることができる、という考え方である。この手法の詳しい実践は→DIC-0008(単位と計測辞典)で扱う単位換算の作法とも密接に関わる。
### 誤差の伝わり方 — 掛け算では誤差が「足し算」される直感
概算を扱う上で欠かせないのが、**誤差(ごさ、水準五: 真の値と、測定・推定した値との差)**が計算の過程でどう伝わるかという直感である。ある量を「だいたい2倍の誤差の範囲」で見積もり、別の量も「だいたい2倍の誤差の範囲」で見積もった場合、その二つを掛け合わせた答えの誤差の範囲は、単純な足し算(2倍+2倍=4倍の誤差)ではなく、**掛け算的に効いてくる**(比率としての誤差同士が掛け合わさるため、2倍の誤差×2倍の誤差はおおよそ4倍程度の誤差の広がりになりうる)という感覚を持っておくことが重要である。フェルミ推定において「一つ一つの推定の誤差は多少大きくても、掛け合わせる要素の数が増えるほど、上振れと下振れが打ち消し合って全体の誤差がある程度縮まる傾向がある」という経験則があるが、これはあくまで実務上の目安であり、要素同士に隠れた関連性がある場合はこの打ち消し合いが成立しない点には注意が必要である(この点は諸説・分野による見解の幅があるため断定は避ける)。
### 有効数字という約束事
**有効数字(ゆうこうすうじ、水準五: 測定や計算の結果のうち、意味のある精度を持つ桁の数)**は、概算の結果をどこまで「正確そうに見せてよいか」を律する約束事である。たとえば「およそ300万人」という概算に対して「3,001,842人」のように細かい桁まで書いてしまうと、実際には持っていないはずの精度を持っているかのような誤解を与える。概算の結果は、その推定の粗さに見合った桁数(有効数字)で報告するのが誠実な作法であり、これは次章で見るIEEE 754の丸め誤差とも遠くつながる「数値の精度をごまかさない」という算術全体の倫理でもある。
---
## 第八章: 計算機の算術 — 2進整数とIEEE 754浮動小数点
### 2進整数としての内部表現
第一章・第二章で見た2進法は、コンピュータが数を保存する際の実際の姿でもある。コンピュータの内部では、整数は0と1の並び(bit列、→BOOK-0010参照)として2進法でそのまま格納される。たとえば本冊第二章で確認した `202 = 11001010₂` という変換は、コンピュータが `202` という値をメモリの中でどう表現しているかを、そのまま人間の目で追体験したものになっている。
### 浮動小数点とIEEE 754
整数だけでなく、小数を含む数(実数)をコンピュータで扱うための標準的な方式が**浮動小数点(ふどうしょうすうてん、水準六: 数を「符号・仮数〈有効桁の部分〉・指数〈小数点の位置を示す部分〉」の3つの部品に分けて表現する方式)**である。この方式の業界標準として広く採用されているのが**IEEE 754**であり、**1985年**に米国電気電子学会(IEEE)によって標準化された。IEEE 754は、限られたbit数の中で、非常に大きな数から非常に小さな数まで扱える柔軟性と、異なるコンピュータ間での計算結果の一貫性を両立させるための規格である。
### なぜ「0.1 + 0.2 ≠ 0.3」が起こるのか
プログラミングを学び始めた人がしばしば驚く現象に、コンピュータで `0.1 + 0.2` を計算すると、厳密に `0.3` にはならず、`0.30000000000000004` のようなわずかな誤差を含む値が返ってくる、というものがある。この現象の理由は、第五章で学んだ「循環小数がなぜ生まれるか」の理屈と、実はまったく同じ構造をしている。
第五章では、10進法の基数10が `2×5` という素因数分解を持つため、分母が2と5以外の素因数を持つ分数(`1/7` など)は10進法で割り切れず循環小数になる、ということを見た。**同じ理屈が、基数を2に置き換えたコンピュータの内部表現にもそのまま当てはまる**。2進法では「割り切れる」ためには、分母が2のべき乗だけでできている必要がある。ところが `0.1`(`=1/10=1/(2×5)`)という数は、分母に `5` という2以外の素因数を含んでいるため、**10進法では有限小数として書けるのに、2進法では循環小数になってしまう**。
**検算(自己検算・実測)**: `0.1` を2進法に変換する手順(小数部分を2倍し続け、整数部分が出るたびに記録する方法)で追うと、`0.1×2=0.2`(整数部0)、`0.2×2=0.4`(整数部0)、`0.4×2=0.8`(整数部0)、`0.8×2=1.6`(整数部1、小数部0.6に戻る)、`0.6×2=1.2`(整数部1、小数部0.2に戻る)……というように、`0.2` という小数部分が再登場した時点(第五章で見た「余りの再登場による循環」とまったく同じ構造)で `0.000110011001100110011...` という循環パターンに入ることが確認できる。IEEE 754の浮動小数点は有限のbit数しか持てないため、この無限に続く循環パターンのどこかで**丸め(打ち切りと四捨五入に相当する処理)**を行わざるを得ず、その打ち切りによって生じるごくわずかな誤差が、`0.1` を2進数で正確に表現できないという形で残ってしまう。`0.2` も同様の理由で正確には表現できず、この2つのわずかな誤差を持つ値同士を足し合わせた結果が、厳密な `0.3` からわずかにずれた `0.30000000000000004` という値として現れる。**これは計算機のバグではなく、10進法で0.1が有限小数として書けても2進法では循環小数になってしまうという、位取り記数法の基数選択そのものに起因する、数学的に避けられない性質である**。
---
## 第九章: 達人技の科学 — BOOK-0201/0202の早業がなぜ効くかの理屈側
### 早業を支える三本の柱
→BOOK-0201・→BOOK-0202では、暗算や概算を素早く行うための具体的な「技」の数々——11をかける技、5をかける技、2・5・4・8の倍数判定、3・9の倍数判定など——が【技名/水準/材料/工程/なぜ効くか/限界】という型で紹介された。本章では、それらの技に共通して働いている数学的な仕組みを、位取り記数法・合同算術という本冊で得た道具を使って整理し直す。達人技の「なぜ効くか」欄の背後には、大きく分けて次の三本の柱が繰り返し登場する。
**柱1: 分配法則** — →BOOK-0201技1(11をかける技)の「なぜ効くか」で示された `AB×11=AB×10+AB` は、`11=10+1` という分解を利用した分配法則の応用である。本冊第一章・第二章で扱った位取り記数法の仕組み(`AB×10` が「元の数の左に0を1つ足す」だけで済むという性質)がなければ、この分解の恩恵は生まれない。
**柱2: 補数・基準値法** — →BOOK-0201技2(5をかける技)の「半分にして10倍」は、`5=10÷2` という関係を利用し、扱いにくい5倍を、扱いやすい2で割る操作と10倍(位取りをずらすだけの操作)に置き換えている。これは次章§16.21で扱う「基準値+補正」の実践解と同じ発想の系列にある。
**柱3: 位取りと合同算術** — →BOOK-0202技1(2・5・4・8の倍数判定)は「`100=4×25` なので下2桁だけ見ればよい」という説明がされていたが、これは本冊第一章の位取り記数法(`10²` より上の位はすべて100の倍数として括り出せる)の直接の応用である。→BOOK-0202技2(3・9の倍数判定=桁の和)は、本冊第三章で導いた `10≡1(mod 9)` という合同式の性質の、余りがちょうど0になる特別な場合そのものである。九去法(本冊第三章)と3・9の倍数判定(BOOK-0202)は、同じ「`10≡1(mod 9)`」という一つの事実から生まれた、双子のような二つの応用だったのである。
### 早業の科学が教えてくれること
達人技はしばしば「特別な才能を持つ人だけの神業」のように語られがちである。しかし本章で整理したように、その中身をたどっていくと、位取り記数法(第一章・第二章)、合同算術(第三章)という、本冊で扱ってきたごく基礎的な道具の組み合わせに行き着く。**早業とは魔法ではなく、位取りと合同算術という土台の上に、分配法則・補数・基準値法という三つの部品を載せた、極めて見通しのよい構造物である**。この見通しのよさこそが、達人技を「暗記するもの」から「導出できるもの」へと格上げしてくれる。
---
## §16.21 三つの実践解(概算の技) — 材料・工程・なぜ効くか・限界
第七章で紹介したフェルミ推定を含め、日常の概算で頼りになる三つの実践解を、達人技の型(【材料/工程/なぜ効くか/効果の程度と限界】)にそろえて整理する。
### 実践解1: 10のべき乗に丸めるフェルミ推定
**材料**: 概算したい対象を、掛け合わせれば答えになる複数の要素に分解する力。それぞれの要素についての大まかな桁数の感覚(→DIC-0008の単位感覚とも接続)。
**工程**:
```
段階1: 求めたい量を、既知or推定しやすい要素の掛け算に分解する
段階2: 各要素を10のべき乗(1, 10, 100, 1000...)に丸めて見積もる
段階3: 丸めた要素同士を掛け合わせ、答えの桁数を得る
段階4: 桁数が合っていることを目標に、必要なら細部を調整する
```
例: 「ある町(人口約10万人)で、1年間に消費される食パンの枚数は概算でどれくらいか」を考える。1人1日あたり食パンを平均0.5枚食べると仮定すると、`100,000人 × 0.5枚/日 × 365日/年` という掛け算に分解できる。**検算(自己検算・実測)**: `100,000 × 0.5 = 50,000`、`50,000 × 365 = 18,250,000`。したがって年間およそ1800万枚程度という桁数の見積もりが得られる(実際の消費量はパンの種類・食習慣によって大きく変動するため、あくまで「桁数を当てる」練習としての概算値である)。
**なぜ効くか**: 第七章で述べた通り、複数の不確かな要素を掛け合わせる際、個々の見積もりの誤差は上振れと下振れが打ち消し合う傾向があり、桁数(オーダー)だけを当てにいく目的であれば、細かい精度にこだわるより要素分解の設計のほうが重要になる。
**効果の程度と限界**: 桁数(オーダー)を当てることには非常に強力だが、要素同士に隠れた相関がある場合(たとえば「人口が多い町ほど1人あたりの消費量も高い」といった関連)には打ち消し合いの前提が崩れ、誤差が想定より大きく伝わることがある。最終的な数値の精度を求める用途には不向きであり、あくまで「桁数の見当」を得るための道具である。
### 実践解2: 基準値+補正
**材料**: 計算しやすい「切りのよい基準値」を見つける観察力。基準値からのズレを引き算・足し算で処理する暗算力(→BOOK-0201・→BOOK-0202の技群と同じ土台)。
**工程**:
```
段階1: 目標の計算に近い、切りのよい基準値を見つける
段階2: 基準値を使った計算を先に済ませる
段階3: 基準値と実際の値との差(補正分)を計算する
段階4: 基準値の計算結果から補正分を足す/引く
```
例: `48 × 5` を計算したいとき、`50 × 5` という基準値の計算を先に済ませる。
```
48 × 5 = 50 × 5 − 2 × 5 = 250 − 10 = 240
```
**検算(自己検算・実測)**: `48 × 5` を直接筆算で計算すると `240`。基準値法で得た `240` と完全に一致した(検算済み)。
**なぜ効くか**: `48 = 50 − 2` という分解に基づき、分配法則 `(50−2)×5 = 50×5 − 2×5` を適用しているだけである(第九章の柱1・柱2と同じ理屈)。`50×5` のような「0で終わる基準値」の掛け算は、位取りをずらすだけで暗算できるため、面倒な部分(2×5=10というごく小さい掛け算)だけを追加で処理すればよくなる。
**効果の程度と限界**: 基準値からのズレが小さいほど効果が大きい(ズレが大きいと補正の計算自体が本題並みに面倒になり、恩恵が薄れる)。またこの技は掛け算・足し算にはそのまま使えるが、割り算や指数計算には基準値の選び方や補正の式が変わるため、そのまま流用はできない。
### 実践解3: 上下から挟む(上界・下界)
**材料**: 対象の値が「これより大きいはずがない」上界と「これより小さいはずがない」下界を、それぞれ別の理由づけで見積もる力。
**工程**:
```
段階1: 明らかに答えより大きいと言える値(上界)を見積もる
段階2: 明らかに答えより小さいと言える値(下界)を見積もる
段階3: 上界と下界の間に真の値があることを確認する
段階4: 上界と下界の幅が実用上十分狭ければ、その範囲を答えとして採用する
```
例: 第六章で見た `√2` の連分数近似を思い出そう。`[1;2]=1.5` は `√2≈1.41421356` より大きい(上界)。`[1;2,2]=1.4` は `√2` より小さい(下界)。**検算(自己検算・実測)**: `1.4 < 1.41421356 < 1.5` であることは直接の比較で確認できる(検算済み)。連分数を1段深く進めるたびに、この上界・下界の幅がどんどん狭まっていくことも第六章で確認した通りである。
**なぜ効くか**: 一つの近似値だけを信じるのではなく、確実に「これより大きい」「これより小さい」と言い切れる二つの値で真の値を挟み込むことで、たとえ途中の計算精度が粗くても、真の値がどの範囲に収まるかについての確信度を保証できる。これは第八章のIEEE 754が抱える丸め誤差のような「避けられない誤差」の影響範囲を見積もる際にも応用される考え方である。
**効果の程度と限界**: 上界と下界の設定次第で挟み込みの精度が大きく変わるため、粗い上界・下界しか作れない場合は「幅が広すぎて実用上役に立たない範囲」しか得られないことがある。上界・下界をどれだけタイトに(狭く)設定できるかが、この技の実用性を決める鍵であり、その設計には対象ごとの工夫(数学的な不等式の知識、経験則など)が必要になる。
---
## 終章 — 未到達部類
本冊で歩いたのは、位取り記数法の一般化(10進・2進・16進・60進)、ゼロという記号の歴史的な完成、基数変換の実際の計算、合同算術による検算術(九去法)、ユークリッド互除法による数論への橋、循環小数と連分数による「割り切れなさ」の構造分析、フェルミ推定と誤差の伝わり方、IEEE 754に見るコンピュータの算術の実装、そして達人技の背後にある理屈という、水準五〜六(後半)の風景だった。
しかし、算術という恒星の光がまだ届いていない領域も数多く残されている。**未到達部類**として、以下を記しておく。
- **拡張ユークリッド互除法の詳しい手続き**: 本冊第四章で触れたRSA暗号との橋渡しの中で名前だけを挙げたが、`ax+by=gcd(a,b)` を満たす係数 `x, y` を実際に求める手順そのものは扱っていない。
- **合同算術の体系的な演算規則(ガウスの合同算術)**: 本冊第三章では九去法という一つの応用に絞ったが、合同式同士の割り算(逆元)や、中国の剰余定理のような複数の法をまたぐ体系的な理論は→BOOK-0074・→BOOK-0127の数論側に委ねている。
- **連分数のさらに一般的な理論**: 本冊第六章では√2と黄金比という二つの具体例に絞ったが、どんな無理数が「周期的な連分数」になるか(二次無理数と周期性の関係)という一般論には踏み込んでいない。
- **浮動小数点演算の詳細な誤差解析**: 第八章ではIEEE 754が丸め誤差を生む理由の入り口までを扱ったが、多数の浮動小数点演算を連続して行った際に誤差がどう蓄積・増幅するかという数値解析の理論は範囲外である。
- **達人技のさらなる部品(平方完成・和と積・たすきがけ等)**: 第九章では→BOOK-0201・→BOOK-0202で紹介済みの技の理屈を整理したが、両冊で扱われている因数分解型の達人技すべての理屈を網羅してはいない。
これらは、続く巻や→BOOK-0075(集合と論理)の枠組みを借りた、さらに先の水準で扱われるべき風景として、この巻の終わりに書き留めておく。算術という恒星の光は、位取りという小さな発明から出発して、ゼロの記号化、合同算術の検算術、割り切れなさの構造分析、そしてコンピュータの中の実装まで、どこまでも遠く届き続けている。
---
## 章末: 検算総覧
1. 基数変換(2進): `202 = 11001010₂`。逆変換で `128+64+8+2=202` を確認。
2. 基数変換(16進): `202 = CA₁₆`。逆変換で `12×16+10=202` を確認。
3. 基数変換(60進・バビロニア風): `202 = 「3, 22」(60進)`。逆変換で `3×60+22=202` を確認。
4. 九去法による検算: `47×86=4042`。左辺の九去法 `2×5→1`、右辺の九去法 `4042→10→1`。一致を確認。
5. 九去法の限界の実例: `4042` と桁を入れ替えた `4024` が同じ九去法の余り(1)になることを確認(見落とし得るミスの実例)。
6. ユークリッド互除法: `1071と462` → `1071=2×462+147`、`462=3×147+21`、`147=7×21+0` → GCD=21。`1071÷21=51`、`462÷21=22` で確認。
7. 最小公倍数: `(1071×462)÷21=23562`。`23562÷1071=22`、`23562÷462=51` で確認。
8. 循環小数: `1/7=0.1̇42857̇`(循環節長6)。`142857×7=999999` を確認。
9. √2の連分数近似: `[1;2,2,2]≈1.41667`、真の値`1.41421356...`との挟み込み(`1.4<√2<1.5`)を確認。
10. 黄金比の連分数近似: `[1;1,1,1]≈1.6667`、`[1;1,1,1,1]≈1.625`、真の値`1.6180339...`周辺への収束を確認。
11. IEEE 754誤差の理由: `0.1` の2進展開が `0.0001100110011...` と循環することを手順で確認(有限桁への丸めが誤差の原因)。
12. 実践解1(フェルミ推定): `100,000×0.5×365=18,250,000` を確認。
13. 実践解2(基準値+補正): `48×5=50×5-2×5=240`。直接計算の `240` と一致を確認。
14. 実践解3(上下から挟む): `1.4<1.41421356<1.5` を直接比較で確認。
---
## 参照文献(定番教科書・一般書)
1. 吉田洋一『零の発見 — 数学の生い立ち』(岩波新書)— ゼロとインド式記数法の歴史を扱う日本語の定番書。
2. 上野健爾『数学者になりたいと思ったことのある人のために』または各種数論入門書 — 位取り記数法と合同算術の橋渡しを扱う教養書全般。
3. Ifrah, G. 『数字の歴史(The Universal History of Numbers)』— 位取り記数法・バビロニア60進法・インドのゼロの伝播を扱う定番の通史。
4. Knuth, D. E. *The Art of Computer Programming, Vol. 2: Seminumerical Algorithms* — 基数変換・浮動小数点演算の理論を扱う定番の専門書。
5. IEEE Std 754-1985 (および後継の754-2008/2019) — 浮動小数点演算の業界標準規格そのもの。
6. Hardy, G. H. & Wright, E. M. 『数論入門(An Introduction to the Theory of Numbers)』— ユークリッド互除法・連分数の数学的基礎を扱う定番の専門書。
---
(本冊子は現代学問宇宙図鑑シリーズ BOOK-0136。数学派生・算術の後半第2巻(水準五〜六後半)。前提は→BOOK-0002算術第1冊。相互リンク先の実在は執筆時に確認済み。GAKUMON_UNIVERSE.md進捗台帳を参照。)
# BOOK-0136 算術 第2巻 — 数を書き表し、計算し、確かめる技術(数学派生 後半第2巻)