선형 합동식의 해가 존재할 필요충분조건, 해의 개수Permalink

axb(modn)ax \equiv b \pmod n의 형태를 선형 합동식이라 하고, 이 방정식의 해는 ax0b(modn)ax_0 \equiv b \pmod n 을 만족하는 정수 x0x_0 이다.

이는 nax0bn \mid ax_0-b의 필요 충분조건이며, 따라서 어떤 정수 y0y_0이 존재하여

ax0b=ny0ax_0-b=ny_0이고, ax0ny0=bax_0-ny_0=b 에 대한 해를 구하는 문제가 된다.

따라서, gcd(a,n)bgcd(a,n) \mid b가 해가 존재할 필요충분조건이다.

Theorem 4.7Permalink

d=gcd(a,n)d=gcd(a, n)이라 할 때,

선형 합동식 axb(modn)ax \equiv b \pmod n의 해가 존재할 조건은 dbd \mid b 이다.

이 조건이 만족되면 법 nn에 대해 dd개의 서로 합동이 아닌 해를 가진다.

증명

axny=bax-ny=b의 해 (x,y)(x,y)가 존재할 조건은 dbd \mid b이다. 이것은 증명되었다. 2단원 참고

해가 있을 때, 이를 만족하는 (x,y)(x,y)의 해는 무수히 많고, 특이해 (x0,y0)(x_0, y_0)에 대해,

x=x0+(n/d)t, y=y0+(a/d)t x=x_0+(n/d)t, ~y=y_0+(a/d)t

는 일반해이다.

2-5 디오판투스 방정식 단원 참고

nn에 대한 완전잉여계

tt가 연속적인 값 t=0,1,2,,d1t=0,1,2,\dots ,d-1 일 때를 생각하자.

x0,x0+(n/d),x0+2(n/d),,x0+(d1)(n/d) x_0, x_0+(n/d), x_0+2(n/d), \dots, x_0+(d-1)(n/d)

이 정수들은 법 nn에 대해 완전잉여계를 형성한다. 그렇지 않다고 하자.

(0i,j<d,ij)(0 \le i, j < d, i \ne j) 에 대해,

x0+i(n/d)x0+j(n/d)(modn)x_0+i(n/d) \equiv x_0+j(n/d) \pmod n이고, (ij)(n/d)0(modn)(i-j)(n/d) \equiv 0 \pmod n 이 된다.

양변에서 n/dn/d 를 소거하여 gcd(n,n/d)=n/dgcd(n, n/d)=n/d 이기 때문에 (ij)0(modd)(i-j) \equiv 0 \pmod d 를 얻는다.

그런데 ij<d\lvert i-j \rvert < d 이기 때문에 i=ji=j 가 되야해서 모순이다. 따라서 완전잉여계를 형성한다.

dd개의 법 nn에 대한 서로 다른 해를 구했고, 임의의 해가 이 dd개 중 하나와 합동을 이룸을 보이자.

임의의 해 x0+(n/d)tx_0+(n/d)t 에 대해 t=qd+rt=qd+r 을 만족하는 q,r (0r<d)q,r~(0 \le r < d) 가 유일히 존재한다.

나눗셈 정리

x0+(n/d)t=x0+(n/d)(qd+r)=x0+nq+(n/d)rx0+(n/d)r(modn) \begin{aligned} x_0+(n/d)t&=x_0+(n/d)(qd+r)\\ &=x_0+nq+(n/d)r\\ & \equiv x_0+(n/d)r \pmod n \end{aligned}

0r<d0 \le r < d 이기 때문에 이는 앞서 구했던 dd개의 해 중 임의의 해와 합동이므로 선형 합동식 axb(modn)ax \equiv b \pmod n 가 해가 존재한다면, 어떤 해는 법 nn에 대해 d(=gcd(a,n))d(=gcd(a,n))개의 서로 다른 해를 가짐이 증명된다. \square

Corollary 1Permalink

gcd(a,n)=1gcd(a,n)=1 이면, axb(modn)ax \equiv b \pmod n의 단 하나의 해가 존재한다.

나머지 연산의 곱셈 역원Permalink

ax1(modn)ax \equiv 1 \pmod n이 유일한 해를 가질 조건은 gcd(a,n)=1gcd(a,n)=1 일 때 뿐이며, 이를 Inverse of a modulo nn 이라 부른다.

PS에서 나머지 연산의 곱셈 역원은 큰 수에 대해서 나머지를 구하려는 식에 나눗셈이 포함되어 있는 경우 굉장히 유용하고 중요하다.

대개 확장 유클리드 호제법이나 페르마의 소정리로 구해진다.

ax1(modn)ax \equiv 1 \pmod n인 합동식에 대해서 xx를 구한다는 것은, 합동식의 어떤 aaxx를 곱해서 11 을 만드는 역원을 활용할 수 있다는 의미이고, 나눗셈 연산대신 이 역원이랑 곱셈 연산을 해줌으로써 합동식에서의 해를 구할 수 있기 때문이다.

예시

예를 들어, NCK=N!K!(NK)!_N\mathrm{C}_K=\dfrac {N!}{K!(N-K)!} 인데, 이것의 법 mm에 대한 나머지를 구하고 싶다고 하자.

그럼 우린 K!K!(NK)!(N-K)! 에 대해 법 mm에 대한 Inverse modulo를 구하면, N!N! 에 그걸 곱해주고 mm으로 나눠줌으로써 NCK_N\mathrm{C}_Kmm으로 나눈 나머지를 구할 수 있다는 의미이다.

하지만 앞서 설명했듯이 gcd(a,n)=1gcd(a, n)=1 일 때만 Inverse modulo가 존재하여 활용할 수 있다.

그래서 문제에서 대개 mm은 소수로 주어지는 편이다.

연립 선형 합동 방정식Permalink

연립 선형 합동 방정식을 간단한 형태로 정리하는 법을 살펴본다.


연립 선형 합동방정식

a1xb1(modm1)a2xb2(modm2) \begin{aligned} a_1x &\equiv b_1 \pmod {m_1}\\ a_2x &\equiv b_2 \pmod {m_2}\\ \vdots \end{aligned}

가 있을 때, 모두 해가 있다면,

dk=gcd(ak,mk)d_k=gcd(a_k, m_k) 일 때, 어떤 kk에 대해 dkbkd_k \nmid b_k 라면 해가 없다.

akdk=akbkdk=bknkdk=mk \begin{aligned} a'_kd_k&=a_k\\ b'_kd_k&=b_k\\ n_kd_k&=m_k \end{aligned}

라고 둔다면,

a1xb1(modn1)a2xb2(modn2)                                (1) \begin{aligned} a'_1x &\equiv b'_1 \pmod {n_1}\\ a'_2x &\equiv b'_2 \pmod {n_2}\\ &\vdots ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(1) \end{aligned}

로 변환되며 더 나아가 임의의 i,j(ij)i, j(i \ne j)에 대해 , ninjn_i \ne n_j 를 만족하는 꼴로 정리할 수 있다.

이 때, gcd(ak,nk)=1gcd(a'_k, n_k)=1이므로

dk=gcd(ak,mk)\because d_k=gcd(a_k, m_k)

akIk1(modnk)a'_kI_k \equiv 1 \pmod {n_k} 를 만족하는 Inverse modulo IkI_k가 존재하고, 이를 (1)(1) 에서 각 양변에 곱해준다면,

xc1(modn1)xc2(modn2) \begin{aligned} x \equiv c_1 \pmod {n_1}\\ x \equiv c_2 \pmod {n_2}\\ \vdots \end{aligned}

를 얻는다.

중국인의 나머지 정리Permalink

중국인의 나머지 정리는 PS에서 종종(?) 나올 정도로 실용적인 경우가 있는데, 이 글에서 소개하는 이론적인 내용도 중요하지만 좀더 실용적인 방법으로 코드를 짤 수 있다.

관련한 내용들은 따로 정리를 할 예정이다.

Theorem 4.8 - 중국인의 나머지 정리(Chinese Remainder Theorem)Permalink

n1,n2,,nrn_1, n_2, \dots, n_riji \ne j에 대해 gcd(ni,nj)=1gcd(n_i, n_j)=1 인 양의 정수라 할 때, 연립 선형합동식

xa1(modn1)xa2(modn2)xar(modnr) \begin{aligned} x \equiv a_1 \pmod {n_1}\\ x \equiv a_2 \pmod {n_2}\\ \vdots\\ x \equiv a_r \pmod {n_r}\\ \end{aligned}

은 법 k=1rnk\displaystyle \prod_{k=1}^r n_k 에 대해 유일한 공통 해를 갖는다.

증명

N=k=1rnkN=\displaystyle \prod_{k=1}^{r} n_k 라 하고, Ni=N/niN_i=N/n_i 라 하자.

gcd(Ni,ni)=1gcd(N_i, n_i)=1 이다.

\because 유클리드 보조정리에 의해

따라서 Nkxk1(modni)N_kx_k \equiv 1 \pmod {n_i} 를 만족하는 해 xkx_k가 존재한다.

x=k=1rakNkxkx=\displaystyle \sum_{k=1}^r a_kN_kx_k 라 하면, 이 해가 주어진 연립 선형합동식을 만족하게된다.

어떤 i(1ir)i(1 \le i \le r)에 대해, iji \ne jajNjxja_jN_jx_jnin_i로 나누어 떨어진다.

niNj\because n_i \mid N_j

따라서 xk=1rakNkxkaiNixiai(modni)x \equiv \displaystyle \sum_{k=1}^r a_kN_kx_k \equiv a_iN_ix_i \equiv a_i \pmod {n_i} 이다.

Nixi1(modni)\because N_ix_i \equiv 1 \pmod {n_i}

이렇게 모든 ii에 대해 xx가 선형합동식을 만족하는 해이기 때문에 해의 존재성이 증명된다.

해의 유일성

xxx \ne x' 인 또 다른 해 xx' 가 있다고 가정하자.

어떤 kk에 대해 xx0(modnk)x-x' \equiv 0 \pmod {n_k} 이다.

gcd(a,b)=1gcd(a,b)=1 일 때, ac, bcabca \mid c,~b \mid c \Rightarrow ab \mid c 이므로,

Theorem 2.4 - corollary 2 이다.
위 식에서 모든 nin_i가 서로 서로소이기 때문이다.

xx0(modk=1rnk)x-x' \equiv 0 \pmod {\sum_{k=1}^r n_k}가 되는데 이는 모순이다.

따라서 또 다른 해 xx'는 존재하지않고 유일성이 증명된다. \blacksquare

미지수가 2개인 연립 선형합동식Permalink

변수가 22개인 선형 합동식

ax+byc(modn) ax+by \equiv c \pmod n

이 해가 존재할 조건은, gcd(a,b,n)cgcd(a,b,n) \mid c 이다.

Theorem 4.9Permalink

다음 연립 선형합동식

ax+byr(modn)cx+dys(modn) \begin{aligned} ax+by \equiv r \pmod n\\ cx+dy \equiv s \pmod n \end{aligned}

gcd(adbc)=1gcd(ad-bc)=1 일 때, 법 nn에 대해 유일한 해를 가진다.

증명

dax+dbydr(modn))bcx+dbybs(modn)x(adbc)drbs(modn)    1 \begin{aligned} &dax+dby \equiv dr \pmod n\\ -\bigl)&\underline{bcx+dby \equiv bs \pmod n}\\ &x(ad-bc) \equiv dr-bs \pmod n ~~~~ \text{\textcircled{1}} \end{aligned}

(adbc)t1(modn)(ad-bc)t \equiv 1 \pmod n인 유일한 해인 tt에 대하여 1\textcircled{1}에 양변을 곱해주면,

xt(drbs)(modn) x \equiv t(dr-bs) \pmod n

이는 연립합동식의 해 xx가 존재함이 보인다.

이와 비슷하게

yt(ascr)(modn) y \equiv t(as-cr) \pmod n

이 과정은 사실 중학교때 배우는 연립방정식을 푸는것과 다르지 않다.

Comments