9年生
一次不定方程
整数解のみを求める一次方程式。
直観直感:2種類の硬貨でちょうどの金額を支払う
3 ドン硬貨と 5 ドン硬貨しか持っておらず、ちょうど 8 ドンを支払いたいとする。それぞれ整数枚必要なので、実質的に整数 x,y≥0 について 3x+5y=8 を解くことになる——実際 x=1,y=1 は 3+5=8 を満たす。「どのような整数 a,b,c に対して ax+by=c が整数解を持ち、そのすべてをどう求めるか」という一般的な問いが、一次不定方程式の理論である。
直線 3x+5y=8 を y=−0.6x+1.6 と書き直す:整数解はこの直線が通る格子点そのものである。中高定義と整除の判定条件
定義: 二元一次不定方程
整数 a,b,c((a,b)=(0,0))による方程式 ax+by=c で、x,y∈Z を満たす解 (x,y) を求めるものを一次不定方程式と呼ぶ。
ax+by=ca,b,c∈Z, (a,b)=(0,0) a,b,c をどう選んでも解けるとは限らない:2x+4y=7 は左辺が常に偶数なので解を持たない。正確な判定条件は d=gcd(a,b) に関わる:方程式が整数解を持つのは d∣c のときであり、かつそのときに限る。
d=gcd(a,b)∣c⟺∃x,y∈Z: ax+by=c ax+by=c の可解性| 条件 | 解を持つか? | 解集 |
|---|
| d∣c | はい | 無限個の族:x=x0+dbt, y=y0−dat |
| d∤c | いいえ | 空集合 ∅ |
発展定理と証明(教科書を超えて)
どちらも 0 ではない整数 a,b に対し、au+bv=gcd(a,b) を満たす整数 u,v が存在する。
なぜ正しいのか?
これは最大公約数が単に「共通の最大の因数」であるだけでなく、実際に a と b の整数結合として到達可能であることを示す——これが ax+by=c の可解性判定を成り立たせる鍵となる事実である。
証明
a と b の正の整数結合全体からなる集合 S={au+bv:u,v∈Z}∩Z>0 を考える。a,b はどちらも 0 ではないので S は空でなく(∣a∣ または ∣b∣ を含む)、整列原理により S には最小元 d=au0+bv0>0 が存在する。
d∣a を示す:a=qd+r(0≤r<d)と割る。すると r=a−qd=a−q(au0+bv0)=a(1−qu0)+b(−qv0) はそれ自体 a,b の整数結合である。もし r>0 なら r は S に属し d より小さくなり最小性に矛盾する。よって r=0、すなわち d∣a である。a の代わりに b で同じ議論をすれば d∣b も分かる。
d は a と b の公約数なので d≤gcd(a,b) である。逆に、a と b の任意の公約数 e は au0+bv0=d を割り切るので e≤d。e=gcd(a,b) とすれば gcd(a,b)≤d を得る。
両方の不等式を合わせると d=gcd(a,b) であり、構成より d=au0+bv0 である。これはまさに u=u0,v=v0 とするベズーの等式である。
ax+by=c が整数解を持つのは、d=gcd(a,b) として d∣c であるときであり、かつそのときに限る。このとき (x0,y0) を一つの解とすると、すべての整数解はちょうど x=x0+dbt, y=y0−dat (t∈Z) である。
なぜ正しいのか?
これは問題を完全に解決する:一つの整除チェックで可解性が決まり、一つでも解が見つかれば t による一パラメータ族が他のすべての解を与える——推測は不要である。
証明
(⇒)(x,y) が整数解ならば d=gcd(a,b) は ax と by の両方を割り切るので ax+by=c を割り切る。よって d∣c は必要条件である。
(⇐)d∣c とし、c=de と書く。ベズーの等式より au0+bv0=d を満たす u0,v0 が存在する。e 倍すると a(u0e)+b(v0e)=de=c となり、(x0,y0)=(u0e,v0e) が整数解である。これで可解性が示された。
次に解 (x0,y0) を一つ固定し、(x,y) を他の任意の解とする。ax+by=c から ax0+by0=c を引くと a(x−x0)+b(y−y0)=0、すなわち a(x−x0)=−b(y−y0) を得る。両辺を d で割ると da(x−x0)=−db(y−y0) であり、gcd(a/d,b/d)=1 なので因子 db は x−x0 を割り切らねばならない(互いに素性の標準的帰結:p∣mn かつ gcd(p,m)=1 なら p∣n)。よって x−x0=dbt となる整数 t が存在し、代入すると y−y0=−dat を得る。
逆に、任意の整数 t に対し x=x0+dbt, y=y0−dat を ax+by に代入すると ax0+by0+t(dab−dab)=c+0=c となり、そのような組がすべて解であることが確かめられる。したがって解の集合はちょうど x=x0+dbt, y=y0−dat (t∈Z) である。
発展実世界での応用と具体例
ax+by=c を解くことは単なる授業の練習問題ではない:ベズー係数を生成する拡張ユークリッドの互除法は、RSA鍵生成でモジュラー逆元を求める操作そのものであり、同じ格子点の考え方が、コンピュータグラフィックスのアルゴリズム(ブレゼンハムの線描画など)が直線がどの整数ピクセルを通るかを決める仕組みの背後にある。
例: 3x+5y=8 を完全に解く
3x+5y=8 のすべての整数解を求め、x が最小の非負値となるものを求めよ。
解答
ユークリッドの互除法を実行する:5=1⋅3+2、3=1⋅2+1、2=2⋅1+0、よって gcd(3,5)=1 であり、これは 8 を割り切るので解が存在する。
逆代入する:1=3−1⋅2=3−1⋅(5−1⋅3)=2⋅3−1⋅5。8 倍すると 2⋅3⋅8−1⋅5⋅8=8⋅1、すなわち 3⋅16+5⋅(−8)=8 となり、一つの解 (x0,y0)=(16,−8) が得られる。
d=1 での一般解の定理より、すべての解は x=16+5t, y=−8−3t(t∈Z)である。t=−3 を選ぶと x=16−15=1, y=−8+9=1 となり、硬貨の例と一致する。
すべての t の中で、x=16+5t≥0 は t≤−4(x=−4)で成り立たなくなるので、最小の非負 x は t=−3 のとき:(x,y)=(1,1) である。
例: RSA鍵生成:モジュラー逆元を求める
公開指数 e=7、φ(n)=40 のRSAにおいて、7d≡1(mod40) を満たす秘密指数 d を求めよ。
解答
合同式 7d≡1(mod40) は、ある整数 k について一次不定方程式 7d−40k=1 と同値である。
ユークリッドの互除法:40=5⋅7+5、7=1⋅5+2、5=2⋅2+1、2=2⋅1+0、よって gcd(7,40)=1 であり、逆元の存在が確認できる。
逆代入する:1=5−2⋅2=5−2⋅(7−1⋅5)=3⋅5−2⋅7=3⋅(40−5⋅7)−2⋅7=3⋅40−17⋅7。よって 7⋅(−17)+40⋅3=1 となり、d≡−17(mod40) を得る。
標準範囲に直す:d≡−17+40=23(mod40)。検算:7×23=161=4×40+1、これでこの練習用鍵の正しいRSA秘密指数が d=23 であることが確認できる。
d=gcd(a,b) に関するどの条件が ax+by=c の整数解の存在を決めるか?
ベズーの等式はどのような整数の存在を保証するか?
(x0,y0) が d=gcd(a,b) で ax+by=c を満たすとき、一般解は x=x0+dbt で y= ?
一次不定方程を解くのに使う拡張ユークリッドの互除法は、どの暗号量を計算する標準的な方法でもあるか?