››
前章 で 学 ん だ (\gcd) を、 素因数分解 し な く て も 求 め る 方法 が ユークリッドの互除法 です。 こ の 強力 な 道具 は、 古代 ギ リ シ ャ の ユ ー ク リ ッ ド 「原論」 (約 2300 年前) に 既 に 記載 さ れ て い ま す。
ポイント: 互除法 は 「(a) を (b) で 割 っ た 余 り を 使 う」 だ け の シ ン プ ル な 操作。 計算量 が と て も 少 な い の で、 大 き な 数 に も 効 き ま す。
整数 (a) と 正 の 整数 (b) に 対 し、
[ a = bq + r \quad (0 \le r < b) ]
を 満 た す 整数 (q, r) が た だ 一通 り 存在 し ま す。 (q) を 商、 (r) を 余り と 呼 び ま す。
例: (23 = 5 \cdot 4 + 3) (商 4、 余 り 3)、 (100 = 7 \cdot 14 + 2) (商 14、 余 り 2)。
[ \gcd(a, b) = \gcd(b, r) \quad (a = bq + r) ]
つ ま り 「(a) と (b) の (\gcd)」 = 「(b) と 余 り の (\gcd)」。 こ れ が 互除法 の 心臓部 です。
(a = bq + r) よ り (r = a - bq)。 (d) が (a, b) の 共通約数 な ら (d \mid (a - bq) = r) で あ り、 逆 に (d) が (b, r) の 共通約数 な ら (d \mid (bq + r) = a)。 し た が っ て 「(a, b) の 共通約数」 と 「(b, r) の 共通約数」 は 完全 に 一致 し ま す。
(\gcd(a, b)) を 求 め る ((a > b > 0) と す る) 手順:
| 割 ら れ る | 割 る | 商 | 余 り |
|---|---|---|---|
| 252 | 198 | 1 | 54 |
| 198 | 54 | 3 | 36 |
| 54 | 36 | 1 | 18 |
| 36 | 18 | 2 | 0 |
余 り が 0 に な っ た と き の 割 る 方 が 18 な の で、 (\gcd(252, 198) = 18)。
検算: (252 = 2^2 \cdot 3^2 \cdot 7)、 (198 = 2 \cdot 3^2 \cdot 11)、 共通 = (2 \cdot 3^2 = 18) ○。
| 割 ら れ る | 割 る | 商 | 余 り |
|---|---|---|---|
| 2730 | 663 | 4 | 78 |
| 663 | 78 | 8 | 39 |
| 78 | 39 | 2 | 0 |
(\gcd = 39)。
(1071 = 1029 \cdot 1 + 42)、 (1029 = 42 \cdot 24 + 21)、 (42 = 21 \cdot 2 + 0)。 (\gcd = 21)。
各 ス テ ッ プ で 数 が お お む ね 半分以下 に な り ま す (フィボナッチ数 が 最悪 ケ ー ス)。 し た が っ て (\log_2 a) ス テ ッ プ 程度 で 終 わ り ま す。
(a, b) が 10 億程度 で も 数十回 の 割 り 算 で (\gcd) が 求 ま る の で、 コ ン ピ ュ ー タ の 暗号計算 (RSA な ど) で も 中心的 に 使 わ れ ま す。
整数 (a, b) に 対 し、
[ ax + by = \gcd(a, b) ]
を 満 た す 整数解 ((x, y)) を 求 め ま す。 (こ の 形 は 次章 の 不定方程式 の 出発点)。
ベズーの等式: 任意 の 整数 (a, b) (両方 0 で な い) に 対 し、 (ax + by = \gcd(a, b)) を 満 た す 整数 (x, y) が 必 ず 存在 し ま す。
互除法 を 行 い、 余 り の 式 を 上 か ら 順 に 並 べ、 下 か ら 順 に 代入 し て い き ま す。
ま ず 互除法 (例題 1) の 結果 を 並 べ ま す。
[\begin{aligned} 252 &= 198 \cdot 1 + 54 \ 198 &= 54 \cdot 3 + 36 \ 54 &= 36 \cdot 1 + 18 \ 36 &= 18 \cdot 2 + 0 \end{aligned}]
下 か ら 逆算:
[\begin{aligned} 18 &= 54 - 36 \cdot 1 \ &= 54 - (198 - 54 \cdot 3) = 54 \cdot 4 - 198 \ &= (252 - 198) \cdot 4 - 198 = 252 \cdot 4 - 198 \cdot 5 \end{aligned}]
し た が っ て (x = 4, y = -5) が 1 つ の 整数解。 検算: (252 \cdot 4 - 198 \cdot 5 = 1008 - 990 = 18) ○。
(\gcd(17, 12) = 1) な の で 整数解 が 存在。 互除法:
(17 = 12 \cdot 1 + 5)、 (12 = 5 \cdot 2 + 2)、 (5 = 2 \cdot 2 + 1)、 (2 = 1 \cdot 2 + 0)。
逆算:
[\begin{aligned} 1 &= 5 - 2 \cdot 2 \ &= 5 - (12 - 5 \cdot 2) \cdot 2 = 5 \cdot 5 - 12 \cdot 2 \ &= (17 - 12) \cdot 5 - 12 \cdot 2 = 17 \cdot 5 - 12 \cdot 7 \end{aligned}]
し た が っ て (x = 5, y = -7)。 検算: (17 \cdot 5 - 12 \cdot 7 = 85 - 84 = 1) ○。
| 道具 | 公式 と 手順 |
|---|---|
| 割 り 算定理 | (a = bq + r)、 (0 \le r < b) |
| 互[除法 | じょほう] の [核 |
| [計算 | けいさん][法 |
| [計算 | けいさん][量 |
| [拡張 | かくちょう][版 |
次 の 章 で は: 一次不定方程式 (ax + by = c) の 整数解 を 互除法 を 用 い て 求 め、 一次合同式 の 基礎 を 学 び ま す。