저번에 최대공약수, 최소공배수, 그리고 유클리드 호제법에 대해 알아보았습니다. 저번 시간에 배운 내용을 바탕으로 이번에는 정수론의 가장 중요한 정리 중 하나인 베주 항등식에 대해 알아보겠습니다.
별 그리기
다음과 같이 12개의 점이 원형으로 찍혀 있습니다.

여기서 0부터 시작해 두 칸씩 건너 뛰어서 점을 이어보도록 하겠습니다.

위와 같은 육각형이 나오네요! 이 도형은 열 칸씩 건너 뛰어도 나옵니다. 한편 세 칸씩, 또는 아홉 칸씩 건너 뛰면 각각 아래와 같은 도형이 그려집니다.

한 칸, 다섯 칸, 일곱 칸, 또는 열한 칸씩 건너 뛰면 아래와 같은 도형이 나옵니다.

아래 표는 a칸씩 건너 뛰었을 때 나오는 도형을 정리한 표입니다.
a칸 건너뛰었을 때 | 도달하는 점의 위치 |
1, 5, 7, 11 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 |
2, 10 | 0, 2, 4, 6, 8, 10 |
3, 9 | 0, 3, 6, 9 |
4, 8 | 0, 4, 8 |
6 | 0, 6 |
이 표를 유심히 보면 한 가지 패턴을 찾을 수 있습니다. 바로 a칸씩 건너뛰는 것으로 도달하는 점들은 gcd(a,12)의 배수라는 점입니다.
수직선 건너뛰기
왜 그런지 알아보기 전에, 또 다른 문제를 보도록 합시다. 아래와 같은 수직선 위에서, 제가 원점에 서 있습니다. 저는 앞뒤로 15칸, 또는 6칸씩 움직일 수 있습니다. 그러면 이 때, 제가 도달할 수 있는 점들은 어떤 점들일까요?

먼저 15칸을 간 뒤 6칸을 뒤로 가면, 저는 15−6=9칸을 갈 수 있습니다.

즉, 이 문제는 제가 앞뒤로 6칸, 9칸을 움직일 수 있을 때 어떤 점에 도달할 수 있는가와 동일한 문제입니다.

똑같이 9칸을 간 뒤 6칸을 뒤로 가면, 저는 9−6=3칸을 갈 수 있습니다. 즉, 이 문제는 제가 앞뒤로 3칸, 6칸을 움직일 수 있을 때 어떤 점에 도달할 수 있는가와 동일한 문제입니다.

그런데 여기서 6칸을 간 뒤 3칸을 뒤로 가면, 저는 6−3=3칸을 갈 수 있는데 저는 이미 3칸을 갈 수 있는 상태였습니다. 즉, 저는 3칸보다 더 조금 이동할 수는 없다는 결론이 나옵니다. 결국 제가 도달할 수 있는 점들은 3의 배수인 점들이 되겠네요.
혹시 이 과정이 익숙하게 느껴지지 않나요? 우리가 지금 한 것은 유클리드 호제법입니다.
gcd(a,b)=gcd(a,b−a)
유클리드 호제법에 의하면 한 수에서 다른 수를 빼는 과정을 두 수가 같아질 때까지 계속 반복하면 최종적으로 얻게 되는 수는 최대공약수입니다. 때문에 제가 최소로 이동할 수 있는 단위는 gcd(6,15)가 되며, 제가 이동할 수 있는 점들은 3의 배수가 되는 것입니다.
결론: 앞뒤로 a,b칸씩 움직일 수 있다면, gcd(a,b)의 배수인 점들에만 도달할 수 있으며, gcd(a,b)의 배수인 점들은 모두 도달할 수 있다.
두 문제 연결짓기
그런데 수직선 건너뛰기 문제와 별 그리기 문제는 동일한 문제입니다. 이를 보기 위해서, 수직선을 아래와 같이 동그랗게 말아보겠습니다.

이렇게 말면, 앞뒤로 15만큼 움직이는건 한 바퀴를 도는 것이기 때문에 그냥 제자리에 있는 것입니다. 때문에 실제로 의미있는 것은 앞뒤로 6만큼 움직이는 것입니다. 상황이 별 그리기 문제와 동일합니다! 그러나 여전히 제가 움직일 수 있는 곳은 gcd(15,6)의 배수입니다. 즉, a등분되어 있는 원 위에서 b칸씩 건너뛰어서 도달할 수 있는 지점은 gcd(a,b)의 배수라는 것이죠.
베주 항등식
수직선 건너뛰기 문제의 결론을 수식으로 멋들어지게 쓰면 아래와 같습니다.
N,M이 정수일 때 aN+bM의 가능한 값은 gcd(a,b)의 배수이며, 오직 이 값들만이 가능하다.
이 정리를 베주 항등식(Bezout's Identity)라고 합니다. 한편 별 그리기 문제와 수직선 건너뛰기 문제의 연관성을 통해 위 정리는 아래 정리와 동치임을 알 수 있습니다.
N이 정수일 때, aN을 b로 나눴을 때의 나머지의 가능한 값은 gcd(a,b)의 배수이며, 오직 이 값들만이 가능하다.
이 사실은 나중에 합동식에서의 나눗셈에 대해 탐구할 때 매우 중요하게 쓰일 것입니다.
수식적 증명
지금까지 우리는 베주 항등식이 왜 성립하는지 직관적으로 살펴보았습니다. 혹시 관심있는 분들을 위해 이 정리를 수식적으로도 증명해 보겠습니다. 먼저 아래와 같이 유클리드 호제법을 적용해 보겠습니다.
a=bx1+r10<r1<bb=r1x2+r20<r2<r1r1=r2x3+r30<r3<r2⋮⋮rn−1=rnxn+1+rn+10<rn+1<rnrn=rn+1xn+2
유클리드 호제법에 의해 gcd(a,b)=rn+1입니다. 위 식에서 rn+1=rn−1−rnxn+1이므로, pn−1=1,pn=−xn+1에 대하여 rn+1은,
rn+1=pn−1rn−1+pnrn
꼴로 쓸 수 있습니다. 마찬가지로 rn=qn−2rn−2+qn−1rn−1의 꼴이기 때문에, 이를 rn+1=pn−1rn−1+pnrn에 대입하면 rn+1은
rn+1=sn−1rn−1+sn−2rn−2
의 꼴로 쓸 수 있습니다. 우변의 차수가 1씩 줄었습니다. 이 과정을 계속 반복하면 결국 rn+1=gcd(a,b)=Na+Mb의 꼴로 표현이 될 것입니다. 이로 증명이 완료되었습니다. (사실 이것보다 조금 더 디테일하게 들어가야 하는데, 핵심은 이 정도입니다. 가볍게 배우는 건데 너무 엄밀히 따지지는 말자고요ㅎㅎ)
저는 다음 글, 합동식에서 뵙도록 하겠습니다!

'수학 > 정수론' 카테고리의 다른 글
정수론 (6) - 오일러의 정리와 오일러 파이 함수 (8) | 2020.01.23 |
---|---|
정수론 (5) - 페르마의 소정리 (5) | 2020.01.19 |
정수론 (4) - 합동식에서의 나눗셈 (4) | 2020.01.17 |
정수론 (3) - 합동식 (6) | 2020.01.13 |
정수론 (1) - 최대공약수, 최소공배수, 유클리드 호제법 (13) | 2020.01.09 |