ユークリッドの互除法の証明を帰納法でやる。教科書の説明通りのことを文字に置きかえて帰納法使ったら証明できるよっていう話。
以下の問いに答えなさい。(東京都立大2018)
(1) 正の整数 p,q,f および整数 r が次の関係をみたしているとする。
p=fq+r
ただし,0≦ r<q とする。このとき整数 d が p と q の公約数であることと,d が q と r の公約数であることは同値であることを示しなさい。
(2) 正の整数 k,m の最大公約数を gcd(k,m) で表す。p,q を,p>q をみたす正の整数とする。また,n≧2 とし,2n−1 個の正の整数 f1,f2,⋯,fn−1,r1,r2,⋯,rn が次の関係をみたしているとする。
p=r1
q=r2
r1=f1r2+r3,r3<r2
⋮
rn−2=fn−2rn−1+rn,rn<rn−1
rn−1=fn−1rn
このとき,gcd(p,q)=gcd(rj,rj+1) (j=1,2,⋯,n−1) が成り立つことを j に関する数学的帰納法で示しなさい。
(3) p と q を互いに素な正の整数とする。このとき,ap+bq=1 をみたす整数 a,b が存在することを示しなさい。
公約数を示す
(1)から始めます。
まず,p=fq+r って p=割る数×商+余り の式だってことに気づくのが大事。
整数 d が p と q の公約数であるということは,p は d の倍数であり,q も d の倍数であるということです。
p=dp’,q=dq’
とすると
p=fq+r
dp’=fdq’+r
r=dp’−fdq’
r=d(p’−fq’) ・・・①
右辺が d の倍数であるということは左辺も d の倍数でなければイコール関係は成り立ちません。よって
r=dr’ とすると
p=fdq’+dr’
p=d(fq’+r’) ・・・②
①,②より,整数 d が p と q の公約数であることと,d が q と r の公約数であることは同値である。(証明終わり)
ユークリッドの互除法
(2)に進みます。
割る数×商+余りの式っぽいけど,何で並べてるのか。
これ,ユークリッドの互除法。
ユークリッドの互除法は,はじめ最大公約数を求める方法として学びます。
たとえば,506 と 437 の最大公約数を求めるなら
506=437⋅1+69
437=69⋅6+23
69=23⋅3+0
最大公約数は 23
これを文字に置きかえます。507 ⇒ r1,437 ⇒ r2 として,さらに商を f1,余りを r3 とすると
r1=r2f1+r3
r2=r3f2+r4
r3=r4f3+0
となり,問題文の式と同じになることが確認できます。そして r4 が最大公約数です。
こうして,ユークリッドの互除法から言えば gcd(p,q)=rn ということになります。
式の意味が分かったところで,あとは数学的帰納法で最大公約数についての証明を書いていきましょう。
gcd(p,q)=gcd(rj,rj+1) (j=1,2,⋯,n−1) ・・・(*)
として
[I] j=1 のとき
p=r1,q=r2 より
gcd(p,q)=gcd(r1,r2)=rn
よって,j=1 のとき(*)は成り立つ。
[II] j=k として(*)が成り立つと仮定すると,j=k+1 のとき
問題文の式を k を用いて表すとこのようになります。
rk=fkrk+1+rk+2
k を j に置きかえると
rj=fkrj+1+rj+2
この式から,gcd(rj,rk+j)=gcd(rk+j,rk+j) が成り立ちます。
さらに,式を進めていくと
rj=fjrj+1+rj+2
rj+1=fjrj+2+rj+3
⋮
rn−1=fn−1rn
となります。
結局,式を
j=k から始めようが,
k+1 から始めようが行きつくところは同じってこと。
よって
gcd(p,q)=gcd(rk,rk+1)=gcd(rk+1,rk+2)=rn
gcd(rk+1,rk+2)=rn であるから,j=k+1 において,(*)が成り立つ。
[I],[II]より,j=1,2,⋯,n−1 について,gcd(p,q)=gcd(rj,rj+1) が成り立つ。(証明終わり)
ユークリッドの互除法が成り立つ仕組み
(3)に入ります。
これも,
19x+11y=1 の整数解を求めよ,みたいな問題で見たことあるよね。
解の一つを見つけるときに,ユークリッドの互除法を使うと良かった。
p を 19,
q を 11 として,
x,y を
a,b に置きかえると
ap+bq=1 となる。つまり,整数
a,b が存在するってのは,ユークリッドの互除法使って解の一つとなる整数を示すってこと。
ajrj+bjrj+1=1 ・・・(*)
として,(2)の関係を満たすとする。
[I] j=1 のとき
p=r1
q=r2
r1=f1r2+r3,r3<r2
⋮
rn−2=fn−2rn−1+rn,rn<rn−1 ・・・③
rn−1=fn−1rn
(2)でやったように,rn が最大公約数だった。
p と q は互いに素だから,gcd(p,q)=1。つまり rn=1
③を移項すると
rn−2−fn−2rn−1=rn
rn−2−fn−2rn−1=1
これを 1⋅ rn−2+(−fn−2)rn−1=1 と考えると,a=1,b=−fn−2 と見なすことができます。今回は文字に入る値はすべて整数だから,fn−2 も何らかの整数です。
よって,(*)をみたす整数 aj,bj が存在する。
[II] j=k として(*)が成り立つと仮定すると,j=k+1 のとき
ak+1rk+1+bk+1rk+2=1 ・・・④
また,(2)より
rk=fkrk+1+rk+2
が成り立つことを利用する。これを移項して
rk−fkrk+1=rk+2
④に代入して
ak+1rk+1+bk+1(rk−fkrk+1)=1
式を整理して
ak+1rk+1+bk+1rk−bk+1fkrk+1=1
bk+1rk+(−ak+1bk+1fk)rk+1=1 ・・・⑤
bk+1 と −ak+1bk+1fk は何らかの整数であることは間違いないので,それぞれ a,b に置きかえることができます。
話の最初に戻って。
a,
b ってのは結局,互除法使って求める解の一つだから。ここでは,その値自体を求めるんじゃなくて,その値が整数であることだけ示せればオッケーなの。実際の値が何だろうと,解の一つが見つかればそれを
a と
b にしようねってこと。
そうなの。こういうの,やってるうちに何やりたいのか分からなくなるから,ちゃんと問題文で聞かれてること確認して。
ak+1=bk+1,bk+1=−ak+1bk+1fk とすると,⑤は
ak+1rk+1+bk+1rk+2=1
となるので,j=k+1 のときも(*)に当てはまる aj と bj が存在する。
[I],[II]より,ap+bq=1 をみたす整数 a,b が存在する。(証明終わり)
関連