0

ユークリッドの互除法(証明)

99
0

はじめに

ユークリッドの互除法に関しては、以前から割と苦手意識があります。
そこで今回はできるだけ丁寧に考えてみました。
もしかしたら間違いを含んでるかもしれません。
赤字は造語です。

準備

a+b=c または ab=c の形の等式をabc等式とよぶことにする。

abc等式における最大公約数の保存

整数abcについて
a+b=cgcd(a,b)=gcd(b,c)=gcd(c,a)
あるいは
ab=cgcd(a,b)=gcd(b,c)=gcd(c,a)

この最大公約数をabc等式の約数とよぶことにする。

2つのabc等式について考える。
a+b=c
ab=c
{a,b,c}{a,b,c}で2個以上の要素が共通するならば、2つのabc等式の約数は等しい。

等差数列における最大公約数の保存

整数abについて、nを整数として以下が成り立つ
gcd(a,b)=gcd(a+nb,b)

a+nbは初項a、交差bの等差数列の項とみなせる。
よって、等差数列の任意の項と交差との最大公約数は一定。

n=0のとき自明。
n>0のとき、次のn本の等式を考える。
a+b=c1c1+b=c2c2+b=c3cn3+b=cn2cn2+b=cn1cn1+b=cn
命題1より、各行で等式の約数は保存されたまま推移するので
gcd(a,b)=gcd(b,cn)
各行の等式を辺々足して整理すると
cn=a+nb
これを先の式に代入して
gcd(a,b)=gcd(a+nb,b)

n<0のときは、等式の+に変えて同様の議論をすると示すことができる。

除法の原理

整数abに対して
a=bq+r0r<|b|
なる整数qrが一意に存在する。

整除法における最大公約数の保存

整数abで割った、商をq、あまりをrとすると
a=bq+r
このとき
gcd(a,b)=gcd(b,r)
が成立する。

与式を変形すると
r=abq
命題2より
gcd(a,b)=gcd(aqb,b)=gcd(r,b)

互除法の証明

ユークリッドの互除法

a>bである自然数abについて商とあまりを求める(商をq、あまりをrとする)。
a=bq+r
算出された商qにとあまりrについて、さらに商とあまりを求める。
同様の操作を繰り返すと、最終的なあまりはgcd(a,b)と一致する。

除数を被除数に、あまりを除数にして割り算を繰り返す。
いわゆるユークリッドアルゴリズムを実行する。
a=bq1+r1b=r1q2+r2r1=r2q3+r3rk2=rk1qk+rkrn3=rn2qn1+rn1rn2=rn1qn+0
命題4より
gcd(a,b)=gcd(b,r1)=gcd(r1,r2)==gcd(rk1,rk)=
また

b>r1>r2>>rk1>rk>

gcd(a,b)=gとおくと、あまりの推移はこんな感じ

bg > r1g > r2g >  > rk1g > rkg > 

rkは「gの倍数」という条件を保ったまま小さくなっていく。
あまりは0以上であり、下限があるのでアルゴリズムが無限に続くことはない。
また rk>0 である限りアルゴリズムは継続するので、
最終的に、互除法のアルゴリズムはあまりが0になって停止する。
このとき
gcd(a,b)=gcd(rn1,0)
したがって
互除法が停止する直前のあまりrn1gcd(a,b)である。

おわりに

最後のあまりがgになることが納得しきれない時期がありました。
0以上のgの倍数」という条件を保ったまま小さくなっていくとして
必ずgを経由するのか、rn1=2gとかになるケースはないのか、みたいな。
議論の正確さにはあまり自信がないので、間違いがあればご指摘お願いします。

投稿日:20231021
更新日:202466
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

tanu
29
18958

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 準備
  3. 互除法の証明
  4. おわりに