初等整数論/合同式

提供: testwiki
ナビゲーションに移動 検索に移動

テンプレート:Nav

ここでは合同式について説明する。

はじめに

次のような問題を考えてみよう。

123456を7で割った余りを求めよ。

問題の意味だけなら整数の掛け算と割り算を知っていれば理解できるし、原理的にはそれだけの知識でこの問題を解くことはできる。しかし、それはとても大変である。一口に123456というが、これを計算すると3539537889086624823140625(日本語で読めば3𥝱5395垓3788京9086兆6248億2314万625)という25ケタの数であり、これを計算してさらに7で割るなど、手計算ではとてもする気にならない。電卓やそろばんでもこの桁数の計算はできない物が多い。

そこで、ここではこの問題をこのような大計算をせずに解く方法を考えてみたい。その道具としての見方から、合同式というものを解説する。

定義

合同の定義には流儀が2つある。

  1. a,bc で割った余りが等しいとき、「a,bcとして合同」といい、ab  (modc) とかく。
  2. a,b について、c|ab のとき、「a,bcとして合同」といい、ab  (modc) とかく。

まずはこれらが同値であることを証明する。

除法の原理に基づいて、a=cq+r  (0r<c),   b=cq+r  (0r<c) とおく。まず、1 の意味で合同、すなわち r=r(1)

ならば、2 の意味で合同であることを証明する。

ab=(cq+r)(cq+r)=c(qq)   ((1))

より、1 の意味で合同 ⇒ 2 の意味で合同

次に、1 の意味で合同でない、すなわち rr(2) ならば、2 の意味で合同でないことを証明する。

ab=(cq+r)(cq+r)=c(qq)+(rr)

このとき、(2)rr0 より、abc で割り切れない。

したがって、1 の意味で合同でない ⇒ 2 の意味で合同でない

以上より、「1 の意味で合同 ⇔ 2 の意味で合同」が証明される。

性質

除法の原理から、どの整数も n を法として、n で割った余りと合同である。つまり n を法として 0,1,,n1 のいずれかと合同である。

ガウスは、合同には = と非常によく似た性質があるから採用した、と述べている。その具体的な性質が次に挙げる定理である。

定理 2.1.1

(i) (反射律)aa  (modn)
(ii) (対称律)abba(modn)
(iii)(推移律)abbcac  (modn)
(iv) abcda±cb±d   (modn)
(v) abcdacbd   (modn)
(vi) abacgcd(a,n)=1bc  (modn)
(vii) f(a,b,c,) を整数係数多項式とすれば、aa,bb,cc,f(a,b,c,)f(a,b,c,)  (modn)
(viii) gcd(a,n)=1 ならば任意の整数 b に対し、 akb(modn) となる k が存在し n を法としてただ1つに定まる(つまり kn で割った余りが1つに定まる)。

証明
(i) aa=0 は全ての整数で割り切れる。したがって、aa (modn)

(ii) ba=1(ab) なので、n|abp|ba したがって定義より abba(modn)

(iii) (ii) より abbcabcb  (modn)

ac=(ab)(cb) より、定理 1.1 から n|ab,cbn|ac

ac  (modn)

(iv) abcd (modn)n|ab,cd

定理 1.1 より n|(ab)+(cd)n|(a+c)(c+d)a+cb+d   (modn)

マイナスの方については、abab  (modn) を利用すれば良い。


マイナスの方を証明せよ。

(v)
bdac=bd+adacad=d(ab)+a(cd)(1)

ここで、abcd  (modn) であることから、ab=nq,cd=nr とおく。すると、

(1)bdac=dnq+anrbdac=n(dq+ar)bdac  (modn)acbd  (modn)((ii))

(vi) abac|na(bc)|p

ここで、(a,n)=1 なので定理 1.6 より bc|nbc  (modp)

(vii)
abakbk  (modp) をまずは証明する。これは、

akbk=(ab)(ak1+ak2b+ak3b2++a2bk3+abk2+bk1)ab を因数に持つことから自明である((v) を使い、帰納的に証明することもできる)。

さて、多変数の整数係数多項式とは、すなわち、akblcm の総和である。先ほど証明したことから、

aa,bb,ccaka'k,blb'l,cmc'm,  (modp)

したがって、(v) を繰り返し使えば、一つの項についてこれは正しい。また、これらの項の総和が f(a,b,c,) なのだから、(iv) を繰り返し使ってこれが証明される。

(viii) 定理 1.8 から、このような k が存在し、 n を法として1つに定まることがすぐに従う(なお (vi) からも akalb(modn) ならば kl(modn) であるから n を法として1つに定まることがわかる)。

先ほどの問題

123456を7で割った余りを求めよ。

これを合同式を用いて解いてみよう。

123454  (mod7) であるから、定理 2.1 (vii) を用いて、12345646163  (mod7)

ここで再び、162(mod7) だから、163231  (mod7)

となり、直接計算するよりかなり簡単に求まった。

単純な応用例

合同式についてより深く考察する前に、単純な応用の例をあげる。

例 1 1年の間には必ず13日の金曜日が訪れる。さらに、1年の間に13日は日曜日から土曜日までのすべての曜日を取る。1月13日が 7 を法として 0 と合同となるように、各曜日を 7 を法として分類すると、1月13日から12月13日まではそれぞれ 7 を法として

0,313,3+283,3+316,6+301,1+314,4+306,6+312,2+315,5+300,0+313,3+305(平年)
0,313,3+294,4+310,0+302,2+315,5+300,0+313,3+316,6+301,1+314,4+306閏年

と合同となる。よっていずれの場合も 0 から 6 まで全て現れるので1年の間に(より正確に、1月から10月の間に)13日は日曜日から土曜日までのすべての曜日を取る。

例 2 平方数を 3 で割った余りは 0 または 1 でなければならない。つまり 3k+2 の形の平方数は存在しない。020(mod3),12221(mod3) なので n を 3 で割った余りが 0 ならば n20(mod3) で、そうでないときは n21(mod3) となるからである。同様にして平方数を 4 で割った余りは 0 または 1 でなければならない。つまり 4k+2 あるいは 4k+3 の形の平方数は存在しない。

これを使い、素数の分布について、次の事実が証明できる。

例 3 4n+3 の形の素数は無限に多く存在し、 6n+5 の形の素数も無限に多く存在する。

証明 任意の素数 p に対し、それより大きな、与えられた形の素数が存在することを証明すればよい。 q=2235p1 とおくと q3(mod4) かつ q5(mod6) である。q の素因数を p1,p2,,pr とおく。 これらがすべて 4 を法として 1 と合同ならば q=p1p2pr1(mod4) となり、q3(mod4) に矛盾する。 よって pi3(mod4) となる pi が存在する。q=2235p12,3,5,,p のいずれとも互いに素だから pi>p でなければならない。同様に p1,p2,,pr がすべて 6 を法として 1 と合同ならば q=p1p2pr1(mod6) となり、q5(mod6) に矛盾する。よって pj5(mod6) となる pj が存在し、pj>p でなければならない。

例 2 は平方数をある数で割った余りがどのような数になることができ、どのような数になり得ないかという問題に一般化できる。これを表したものが平方剰余である。さらに一般の累乗に拡張したものがべき剰余である。


合同方程式の基本定理

まず、2つの多項式 f(x),g(x)n を法として合同とは、その各係数がすべて n を法として合同であることをいう。合同式に関する定理 2.1.1. (i)-(v) は多項式に対してもそのまま成り立つことが容易にわかる。実際、例えば f1(x)g1(x)(modn),f2(x)g2(x)(modn) ならば f1(x)=g1(x)+nh1(x),f2(x)g2(x)+nh2(x) となる整数係数の多項式 h1(x),h2(x) が存在するから f1(x)f2(x)g1(x)g2(x)+n(g1(x)h2(x)+g2h1(x))+n2h1(x)h2(x)g1(x)g2(x)(modn) が成り立つ。

合同方程式とは、多項式 f(x) とある整数 n における法について、f(x)0(modn) という形の式である。定理 2.1.1 より abf(a)f(b)(modn) だから、0,1,,n1 まで全て代入して確かめてみれば原理的には解けるのである。

f(x)=anxn+an1xn1++a1x+a0 について、各係数 aγ を他の合同な数で置き換えても良い。特に、法 k で割り切れるときは、その項を消去しても良い。この操作をしたとき、an≢0(modk) のとき、この合同式を n 次といい、 合同式 f(x)0(modk) が n 次であることの必要十分条件は f(x)g(x)(modk) となる多項式 g(x) の中で最低次数のものが n 次であることである。そのような g(x) の最高次、つまり n 次の係数は k で割り切れない(割り切れるならば、その係数を消去することで、さらに低い次数の、 f(x) と合同な多項式がとれるからである)。

p を素数とすると、f(x)0(modp) が m 次の合同式で、 g(x)0(modp) が n 次の合同式であるとき f(x)g(x)0(modp) は m+n 次の合同式である。実際 f(x)=pf0(x)+f1(x),g(x)=pg0(x)+g1(x) となるように m次の多項式 f1(x)=amxm+am1xm1+ と n 次の多項式 g1(x)=bnxn+bn1xn1+ をとれば f(x)g(x)f1(x)g1(x)(modp) となる。ここで f1(x)g1(x) の m+n 次の係数は ambn である。しかし f(x)0(modp) は m 次の合同式で、g(x)0(modp) は n 次の合同式だから am,bnp で割り切れない。よって ambnp で割り切れない(ここで法が素数であることを用いている)。よって f(x)g(x)f1(x)g1(x)0(modp) は m+n 次の合同式である。

これは素数以外の法では一般に正しくない。たとえば (2x+1)(3x+1)5x+1(mod6) となる。左辺の 1 次の係数同士を掛けると 6 を法として消えてしまうからである。

素数を法とする合同方程式について、以下の基本的な事実が成り立つ。

定理 2.1.2 (合同方程式の基本定理)

p が素数のとき、n 次の合同式 f(x)0(modp) は高々 n 個の解を持つ。もちろん解は p を法として互いに不合同なものを数える。より強く、n 次の合同式 f(x)0(modp) が互いに不合同な解 x=x1,x2,,xm を持つならば、

f(x)(xx1)(xx2)(xxm)g(x)(modp),g(x)≢0(modp)

と因数分解できる(特に mn である)。


証明
n に関する数学的帰納法で証明する。

n=1のときは f(x) と合同な 1次式を g(x)=a1x+a0 とおく。 gcd(a1,p)=1 であるから定理 1.8 より、a1xa0 と合同になるような x=x1p を法として、ただひとつ存在する。すなわち、a1x+a00(modp) はただひとつの解を有する。そしてこのとき

a1x+a0a1(xx1)(modp)

となる。gcd(a1,p)=1 より定理は正しい。

n-1 次の合同式に対して定理が正しいと仮定し、 f(x)0(modp) を n 次の合同式とする。 f(xm)0(modp)より f(x)=(xxm)f1(x)+f(xm) となる多項式 f1(x) が存在する。f(xm)0(modp) より

f(x)(xxm)f1(x)(modp)

を得る。上の事実から f1(x)0(modp) は n-1 次の合同式である。 p は素数なのだから、定理 1.12 より与式は xxm または f1(x)p で割り切れるときにだけ成り立つ。したがって、f(x)0xm 以外の解x1,x2,,xm1f1(x)0 の解である(xm も依然として f1(x)0 の解かも知れないが、証明には影響しない)。f1(x)0(modp) は n-1 次の合同式だから、帰納法の仮定より

f1(x)(xx1)(xx2)(xxm1)g(x)(modp)

となる g(x)≢0(modp) が存在する。よって

f(x)(xx1)(xxm1)(xxm)g(x)(modp)

となり、この n についても定理が正しい。

よって以上より数学的帰納法によって定理は証明された。


x(x1)0(mod2) はすべての整数 x=k に対して成り立つが、左辺の多項式は 2 を法としても 0 (正確には零多項式)と合同ではない。このように、すべての整数 k に対して f(k)g(k)(modn) となるからといって多項式 f(x),g(x) が n を法として合同であるとは限らないので注意しなければならない。

剰余系

法を 7 とした場合、余りとして可能性のあるのは 0,1,2,3,4,5,6 の 7 種類である。

そこで、同じ余りの数の集合、例えば {13,6,1,8,15} は、どの2つをとっても合同である。この集合のことを、一般に「m を法としての」という。

m を法としての類に属する全ての数は、類の任意の1つの数 a を取ってきて、a+nt  (t=,2,1,0,1,2) と表せる。この a を類の「代表」の元、という。

さて、あまりの可能性としてあるのは 7 種類だったから、7 を法としての類は全部で 7 種類できる。

{14,7,0,7,14}{13,6,1,8,15}{12,5,2,9,16}{11,4,3,10,17}{10,3,4,11,18}{9,2,5,12,19}{8,1,6,13,20}

が全ての類である。このとき、これらの 7 種類の類から数を1つずつ取り出してきたとする(例えば、{0,1,2,3,4,5,6},{14,8,2,10,3,2,6})。このとき、これらの 7 個の整数を「7 を法としての各類の代表の一組、または剰余系」という。

一般に、m を法としての m 種類の類から数を1つずつ取り出したとき、これらの m 個の数は「m を法としての各類の代表の一組、または剰余系」という。

さて、剰余系に関して、次の定理が成り立つ。

定理 2.1.3

要素が m 個の集合 Mm を法としての剰余系であるための必要十分条件は、M のどの2つをとっても互いに不合同であることである。

証明
定義より、M が剰余系ならば M のどの2つをとっても互いに不合同なのは自明。

要素が m 個の集合 M のどの2つをとっても互いに不合同であるとしよう。余りの種類は 0,1,,m1m 種類である。合同の定義より、どの2つをとっても互いに不合同であるので、割った余りを定めればそれに対応する M の要素は見つかるはずである。(w:鳩の巣原理

除法の原理より、全ての整数はただ一通りに k=mq+r (0r<m) と表せる。先ほどの議論から、tM, tr(modm) となる t が存在する。合同の定義より、tr=ms とおくと、

r=tmsmq+r=tms+mqk=t+m(qs) となり、k を、t によって代表される類の数として表すことが出来た。またこれはただ一通りであり、k は任意の数である。すなわち、M は剰余系をなしている。

さて、規約剰余系というものが出てきたが、一般に (r,m)=d(r+mt,m)=d であるので、類の数は全て法と互いに素、もしくは一定の最大公約数を持つ。そのうち、互いに素な数のみの類を既約類といい、剰余系のうち既約類のみから数を取り出したものを規約剰余系という。

剰余類環

7 を法とした剰余系として最も簡単なものは、おそらく M={0,1,2,3,4,5,6} だろう。これに、加法と乗法を定義する。

加法
+ 0 1 2 3 4 5 6
0 0 1 2 3 4 5 6
1 1 2 3 4 5 6 0
2 2 3 4 5 6 0 1
3 3 4 5 6 0 1 2
4 4 5 6 0 1 2 3
5 5 6 0 1 2 3 4
6 6 0 1 2 3 4 5
乗法
× 0 1 2 3 4 5 6
0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6
2 0 2 4 6 1 3 5
3 0 3 6 2 5 1 4
4 0 4 1 5 2 6 3
5 0 5 3 1 6 4 2
6 0 6 5 4 3 2 1

どのようにこの表を作っているかというと、M は剰余系なので、任意の数 kmk(mod7) なる mM がただひとつ存在する。そこで、a,bM について、a+b,abM のただひとつの要素 m,n と合同であるようにすることができる。そのときの m,n をそれぞれ、a+b=m,ab=n と定義するのである。

この概念は任意の法に拡張することができる。そのとき法とする数によって、/m と書く。また、これは類の代表の元の選び方によらない。

このようにして定義された加法と乗法による剰余系は、環をなす。

また 定理 2.1.1 (viii) より gcd(a,n)=1 である限り akb(modn) となる k が存在し、しかもそのような k の属する剰余類はただ1つに定まることがわかる。特に ak1(modn) となる k の属する剰余類は乗法に関する a の逆元である。これを a¯ であらわすことがある。このとき akb(modn)kba¯(modp) である。 また特に、法が素数のとき、0以外の剰余類はすべて逆元をもつので、この剰余系は(有限)体をなす。

テンプレート:Nav