Excel VBA 数学教室ではアフィリエイトプログラムを利用して商品を紹介しています。

ユークリッドの互除法の原理

ユークリッドの互除法

今回は 2000 年も昔から知られるユークリッドの互除法(Euclid’s Algorism)の原理という有名な定理を証明します。

【定理A12:ユークリッドの互除法の原理】
2 つの整数 a,b(a>b>0) について
a=bq+r(0r<b)を満たすような (q,r) が唯一組存在し、
(a,b)=(b,r)が成り立つ。

[証明] a=bq+r(0r<b) を満たすような (q,r) が唯一組だけ存在することは 定理A1 で述べてあります。ここでは
(a,b)=(b,r)
が成り立つことを証明します。
g1=(a,b),g2=(b,r4)
とおきます。a=bq+r なので
r=abq
と書き直すと、a,b ともに g1 を約数にもつので、a,b1 次結合 r もまた g1 を約数にもちます
g1|r
です。g1br の公約数なので、br の最大公約数以下となっているはずです。
g1g2
同様に a=bq+r において、b,r ともに g2 を約数にもつので、その 1 次結合である ag2 を約数にもちます。すなわち g2ab の公約数なので、ab の最大公約数以下となっているはずです。
g1g2
g1g2 かつ g1g2 なので
g1=g2
が成り立ちます。すなわち
(a,b)=(b,r)
が成り立つことが示されました。(証明終)

a1>a2>0 なる 2 整数について、除算アルゴリズムを次々に適用してみます。
a1=a2q1+a3(0a3<a2)a2=a3q2+a4(0a4<a3)a3=a4q3+a5(0a5<a4)
a1>a2>a3> なので、いつかは余りが 0 となって割り切れます。それが n 回目であったとすると
a3=a4q3+a5(0a5<a4)an1=anqn1+an+1(0an+1<an)an=an+1qn
となります。そこで定理 A12(ユークリッドの互除法の原理)を適用すると
(a1,a2)=(a2,a3)=(a3,a4)==(an,an+1)=an+1
となります。すなわち最後に an を割り切った an+1 が最大公約数であるということです。具体的な数でユークリッドの互除法を試してみましょう。556 と 208 の最大公約数を求めてみます。
556=208×2+140208=140×1+68140=68×2+468=4×17
最後に 68 を割り切った 4 が 556 と 208 の最大公約数です。
 
ユークリッドの互除法を視覚化してみましょう。
例として、72 と 56 の最大公約数を求めます。

ユークリッドの互除法説明図

横が 72, 縦が 56 の長方形です。作業は簡単です。まず、この長方形からなるべく大きな正方形ができるように切込みを入れます。1辺の長さ 56 の青い正方形が1つとれましたね。もとの長方形の辺の長さを、この青い正方形の1辺を使って表すと、

72 = 56 × 1 + 16

となります。今度は青い正方形を切り離してしまって、右側の細長い長方形からなるべく大きな正方形がとれるように切込みを入れます。1辺の長さ 16 赤い正方形が 3 つとれます。式で表すと、

56 = 16 × 3 + 8

です。残ったのは1辺の長さ 16 の緑色の長方形で、これは

16 = 8 × 2

と 2 つに分けることができます。もとの長方形は1辺が 8 の正方形タイルできれいに敷き詰めることができます。つまり 72 と 56 の最大公約数は 8 だということです。これが最大公約数の図形的な意味です。上の計算式をまとめて書いてみます。

  72 = 56 × 1 + 16
  56 = 16 × 3 + 8
  16 = 8 × 2

従って、8 が最大公約数であることがわかります。もう少し簡略化して書くと、

  72 ÷ 56 = 1 [余り 16]
  56 ÷ 16 = 3 [余り 8]
  16 ÷ 8 = 2  [余り 0]

のように計算します。手順は除数(割る数)を余りで割ることの繰返しです。

エクセルや数学に関するコメントをお寄せください