Loading [MathJax]/jax/output/CommonHTML/jax.js
スポンサーリンク

一次不定方程式が整数解を持つ条件は…?

代数学

本記事の内容

本記事は「一次不定方程式ax+by+cz=kが整数解を持つ条件」について解説する記事です。

本記事を読むに当たり、最大公約数について知っている必要があるため、以下の記事も合わせてご覧ください。

一次不定方程式とは?

何よりもまず、一次不定方程式とは何か?という話をしなければなりません。
一次不定方程式というのは、
ax+by+cz=k
のような2つ以上の未知数を含む一つの一次方程式のことを指します。

特に、初等整数論で考察するのは、a,b,c,kZのときで、この方程式のすべての整数解を求めるという問題です。

実は、この方程式が整数解を持つならば、無数の整数解が存在します(後でちょっとだけお話します)。
この意味においては、古来からそれを不定方程式と呼んでいました。
別分野の代数的方程式論における不定と区別するために、近年は整数係数の方程式の整数解を求めることをディオファントス(Diophantus)の問題と呼ぶようになりました。
故に、その方程式はディオファントス方程式と呼ばれることもあります。

余談(ディオファントス) ディオファントスは、西暦約350年頃のアレキサンドリアにいたと言われています。
方程式、特に1次方程式の解法はディオファントスの著書に初めて載せられたものですが、主として有理数、特に整数を取り扱ったものです。

ちょっとだけ踏み込んだ話

“すべての”整数解を求める?

“すべての”整数解を求める、というのはどういう意味でしょうか。
例えば、次の一次不定方程式を考えてみます。
32x+57y68z=1
「この方程式の”解”は?」と聞かれたらどうでしょうか。
どのようにして解くかは一旦置いておいて、(x,y,z)=(33,3,13)は(1)の解です。
実際、
35×33=1056,57×(3)=171,68×13=884
により、1056171884=10561055=1となるからです。
さらに、(x,y,z)=(272,1,112)も(1)の解です。
実際、
32×272+57×(1)68×112=16×275734×11=43257374=432431=1
です。

このように、”解”自体は無数にあります。
線型代数を学習している方は、一次不定方程式(1)を
(325768)(xyz)=1
と捉え、ランクを考えると「確かに、解は一位に定まらないよね」と分かると思います。
故に、解を”すべて”求めるということになるのです。

整数解が存在しないことがあるのか?

あるんです。
例えば、2x+4y+6z=1という一次不定方程式には、整数解が存在しません。
これは極端な例ではありますが、仮にこの一次不定方程式に整数解(x0,y0,z0)が存在したとすると、
2x0+4y0+6z0=1
を満たすことになります。
しかし、2x0+4y0+6z0=2(x0+2y0+3z0)となるため、両辺の偶奇性が一致しません。
したがって、この一次不定方程式には整数解が存在しません。

一次不定方程式ax+by+cz=kが整数解を持つための必要十分条件

では、本題です。

定理1.

一次の不定方程式 ax+by+cz=k(a,b,c,kZ) が整数解を持つための必要十分条件は、kd=gcd(a,b,c)で割り切れることである(変数の数は任意)。

変数x,y,zに任意の整数値を与えるとき、一次形式ax+by+czが取るところの値を、この一次形式によって表される数といいます。
この用語を使えば、定理1.

定理1.の言い換え

一次形式 f(x,y,z)=ax+by+cz によって表される数はd=gcd(a,b,c)の倍数の全体である。

と言い換えることもできます。

定理1.の証明

の証明

0は一次形式f(x,y,z)で表される数です。
実際、例えば(x,y,z)=(0,0,0)または(x,y,z)=(b,a,0)などとすると、f(x,y,z)=0です。

また、kZが一次形式f(x,y,z)によって表される数であれば、すなわちf(x,y,z)=kなる(x,y,z)Z3が存在すれば、kもまた一次形式f(x,y,z)によって表されます。
実際、ax+by+cz=kであれば、a(x)+b(y)+c(z)=kを満たすからです。

さて、一次形式f(x,y,z)=ax+by+czで表される整数の中で、最小の正の整数をk0とし、そのk0
ax0+by0+cz0=k0
と表示されたとします。
「そもそもそんなk0が存在するのか?」という話ですが、正の整数に限定しているため、最小値が存在します。

また、一次形式f(x,y,z)によって表される任意の整数をkとして
ax+by+cz=k
と置きます。
すると、kk0の倍数となっています。
実際、仮にkk0の倍数ではなかったとしましょう。
ここで次の事実を使います。

定理0.(割り算定理、剰余の定理)

a,bZとする。b>0であるならば、 a=qb+r(0r<|b|) となるような整数q,raZに対して一意的に存在する。

定理0.(割り算定理、剰余の定理)の証明は【代数学の基礎シリーズ】初等整数論編 その2を御覧ください。

定理0.(割り算定理、剰余の定理)から、
k=qk0+r(0r<k0)
というq,k0Zが一意的に存在します。
今、kk0の倍数ではないので、r0であるから、
k=qk0+r(0<r<k0)
というq,k0Zが一意的に存在します。
すると、(2)および(3)から、
r=kqk0=ax+by+czq(ax0+by0+cz0)=ax+by+czaqx0+bqy0+cqz0=a(xqx0)+b(yqy0)+c(zqz0)
となるため、rも一次形式f(x,y,z)で表される数です。
しかし、今このr0<r<k0を満たすため、これはk0の最小性に矛盾します(k0が最も小さい値だったのに、それよりも小さい値が出てきてしまう)。
したがって、kk0で割り切れます。

そもそもa=a1+b0+c0と書くことができるため、aは一次形式f(x,y,z)で表される数です。
したがって、先の議論からak0で割り切れます。
同様にしてbおよびck0で割り切れます。
すなわち、a,b,cは共にk0で割り切れるため、k0a,b,cの公約数です。
また、a,b,cd=gcd(a,b,c)の倍数です。
ここで、次の事実を使います。

定理2.

ある整数の倍数の和、または倍数の倍数はその整数の倍数である。すなわち、一般にa1,a2,,anZbZの倍数であれば、x1,x2,,xnZに対して a1x1+a2x2++anxnbの倍数である。

定理2.の証明は【代数学の基礎シリーズ】初等整数論編 その2を御覧ください。

定理2.から、ax0+by0+cz0d=gcd(a,b,c)の倍数です。
すなわち、ax0+by0+cz0=k0により、k0d=gcd(a,b,c)の倍数です。
一方で、k0a,b,cの公約数でした。
ここで、次の事実を使います。

定理3.

2つ以上の整数の公約数は最大公約数の約数である。

定理3.の証明は【代数学の基礎シリーズ】初等整数論編 その3を御覧ください。

したがって、k0a,b,cの公約数であり、定理3.からd=gcd(a,b,c)の約数です。
一方でk0dの倍数でもあるため、k0=dでなければなりません。
今、k0ax0+by0+cz0=k0と表されているため、
ax0+by0+cz0=d
となるから、dも一次形式f(x,y,z)で表されます。
dが一次形式f(x,y,z)で表される数であれば、dの倍数もf(x,y,z)によって表される数です。

の証明

逆に、一次形式f(x,y,z)によって表される数は再度定理2.からdの倍数となります。

以上のことから、f(x,y,z)=kを満たすx,y,zZが存在するための必要十分条件はkgcd(a,b,c)で割り切れることです。

定理1.の証明終わり

“整数解の存在”は分かったが、具体的にどう解くのか?

具体的な問題で確かめてみましょう。

問題
32x+57y68z=1 の一般の整数解を求めよ。

何よりもまず、「そもそも整数解が存在するのか?」ということを確かめます。
定理1.により、1gcd(32,57,68)の倍数、すなわちgcd(32,57,68)=1であることを確認します(確認してみよう!)。
今回はgcd(35,57,68)=1であるため、32x+57y68z=1には整数解が存在します。

さて、絶対値が最小の係数32で各係数を割ります。
57=32×2768=32×2+4
ここで「んお?割り算定理の形とは違うな?」と思った方、大丈夫です。
先に述べておきますが、割り算定理の形に変形しても解けます。

32x+57y68z=32x+(32×27)y(32×2+4)z=32x+2×32y+2×32z7y4z=32(x+2y2z)7y4z
ここで、
x=x+2y2zとします。
すると、y=z=0とすることで、x=xZとなるためxは任意の整数を表します。
このとき、
32x7y4z=1
となります。

同様にして、
32=4×87=4×21
により、
z=8x2yz
とおくことで、(4)から
y+4z=1
となります。
(4)の一般解として、

y=14z(ただし、xおよびzは任意の整数)

を得ます。
これを(6)に代入して
z=8x+7z2
です。
最後に(5)に代入して
x=17x+22z6
となります。
したがって、
{x=17x+22z6y=14zz=8x+7z2
が一般解です。

ちなみに、最初に
57=32×1+2568=32×2+4
と変形した場合は、
{x=17s46t+11y=14tz=8s25t+6
となります。

皆様のコメントを下さい!

筆者が修士のとき、とある原理を理解するのに約一ヶ月半かかりました。
そのとき「考える→分からない→考える→やっぱり分からない→でも考える→されど分からない→ふてくされる→一旦考えるのを止める→危機感にかられて考える→分からない→投げ出す→ふとしたときに考えてみる→閃く→分かる→天才だと誤認する」という感じでした。
皆様はどんな感じですか?
ぜひコメントで教えて下さい!

今回は、一次不定方程式の整数解の存在について解説しました。
一次不定方程式は”不定”と言っているだけあって、解は一意的にに定まりません。
しかし、どういう整数が解たりえるのかを調べることができます。
そのためには、結局の所ax+by+cz=kkgcd(a,b,c)に注目すればOKということなのです。

次回は素数を導入します。

乞うご期待!
質問、コメントなどお待ちしております!
どんな些細なことでも構いませんし、「定理〇〇の△△が分からない!」などいただければお答えします!
お問い合わせの内容にもよりますが、ご質問はおおよそ1週間以内にお答えします。
(難しかったらもう少しかかるかもしれませんが…)

初等整数論について、以下の書籍をオススメします!

コメントをする

タイトルとURLをコピーしました