정수론
1. 개요
number theory[1]
整數論
정수론, 또는 수론은 정수의 성질 또는 정수가 등장하는 경우[2] 들을 연구하는 학문이다.
2. 상세
고대부터 중세까지의 수학에서 정수론은 기하학, 해석학, 대수학과 어깨를 나란히 하는 학문 파트 중 하나였다. 흔히 수학을 산술, 대수, 기하, 해석으로 분류하는데, 정수론은 이 중에서 산술(arithmetic) 이라는 명칭으로 불리던 분야이다. 독자적인 이론도 풍부했으며, 그 때문에 한국수학올림피아드 같은 곳에선 아직도 독립된 분야로 다루고 있다.[3] 정수 체계는 수학의 가장 중심적인 영역이기도 한데, 인간이 연구하는 수학적 관념들의 시작점이기 때문. 이와 관련하여 수학자 레오폴드 크로네커는 "자연수는 신의 선물, 나머지 모든 것은 인간의 작품이다."이라는 명언을 남기기도 하였다.
정수론의 현실 세계에서의 쓰임새는 다른 수학 분야에 비해 적지만, 아이러니하게도 정수론의 문제를 해결하기 위해 모든 분야들을 총동원하는 것을 볼 수 있다. 최전방의 수학 분야들이 정수론 문제들을 고려하여 이끌어진 것이 꽤 되고, 이 과정 속에서 필즈상을 타는 경우도 제법 있다. 그런 이유에서 동떨어진 듯한 분야에서의 놀라운 정리가 사실 역사적으로는 정수론의 문제를 해결하려는 도중에 발견된 것들도 많이 있다.
잉여 분야라는 이미지가 있지만[4] 그래도 사용하는 곳이 생각보다는 많다. 암호학의 기본 이론도 이 정수론을 기본으로 하고 있으며,[5] 정보와 관련된 이론들도 상당 부분 정수론을 기본으로 한다. 그리고 컴퓨터가 발달되면서 사용빈도가 늘었다. 그 이유라 하면, 컴퓨터에서 정수는 '''정확한 값'''을 가질 수 있기 때문이다. 실수형 타입의 경우에는 round off error[6][7][8] 때문에 오차가 생기고, 이 오차는 계산을 거듭할수록 걷잡을 수 없이 커지기 때문이다 게다가 컴퓨터에서의 수 표현은 수를 표현할 저장공간의 한계상 정수론에서 말하는 시계 산술을 사용한다.
정수론에서 가장 큰 난제는 1990년대에 앤드루 와일즈에 의해 풀린 페르마의 마지막 정리'''였다'''. 이 정리의 내용은 "정수 $$n\ge 3$$에 대해, $$x^{n} +y^{n} =z^{n}$$ 을 만족하는 자명하지 않은 해[9] 는 존재하지 않는다" 이다.[10]
이 분야에서 아직까지 풀리지 않은 문제는 골드바흐 추측과 리만 가설 등이 있다. 사실은 유명한 난제가 제일 많이 존재하는 수학 세부 분야이다. 문제를 풀어내기 위해서는 분야가 다른 수학 교수라면 이해를 못 할 정도의 고난이도의 방법론이 사용되지만, 문제 그 자체는 중학생도 이해할 수 있을 정도로 쉬운 경우가 많기 때문에 유명해진 문제들이 많다. 특히 콜라츠 추측 같은 문제는 초등학생도 매우 쉽게 이해할 수 있는 문제이지만 100년 가까이 증명되지 않았다. 심지어 수학의 제왕이라 불리는 가우스조차 누구나 쉽게 페르마의 정리와 같은 문제를 만들어 낼 수 있을 것이라고 했을 정도.[11]
정수론이 잉여 분야이며 연구도 활발하지 않다고 많이 까이지만, 수학의 공리 대부분은 정수론에 대한 공리이다. 왜 21세기에 정수론 연구가 활발하지 않냐 하면 정수론은 '''고대 그리스, 아니 고대 이집트 시대부터 연구된 수학사적 총체'''이기 때문이다. 거의 5,000년 정도 수학자들이 열심히 연구해서 현재의 토대를 구축한 것이다. 5,000년 동안 연구해 왔으니 생각보다 많은 부분이 증명 또는 합의에 의한 공리체계로 정리되어 있다. 그럼에도 불구하고 정수론에는 난제가 너무나도 많고, 이것을 증명 또는 공리로 정하는 방법을 찾지 못하고 계속해서 난제가 쌓여가는 모습을 볼 수 있다. 그야말로 정수론은 수학 체계에서 '''원점이자 정점''' 그 자체이다.
참고로 이름은 '정수론'이지만 기초 수준에서는 정수보다는 자연수, 그중에서도 소수를 중점적으로 다룬다. 음의 정수는 잘 다뤄지지 않는데, 대부분의 곱셈에 관련된 문제에서 양의 정수에 -1을 곱하는 것으로 음의 정수를 다룰 수 있기 때문이다. 또한 합성수들은 소수의 곱으로 생각할 수 있기 때문에[12] , 결국 소수가 다른 정수들보다 더 중요한 대우를 받게 된다.
3. 주요 대상
3.1. 소수(Prime number)
정수론에서 가장 중심적으로 연구하는 것은 소수이다. 당장 생각나는 특징들은 모두 소수와 관련된 정리나 추측인 것이 많다. 예로, 4 이상의 모든 짝수는 두 소수의 합으로 나타낼 수 있다라든가, 6 이상의 모든 자연수는 세 소수의 합으로 나타낼 수 있다라든가.[13]
$$\left(p-1\right)! \equiv -1 \left(\text{mod} \ p\right)$$[14] 와 $$x^{p-1} \equiv 1 \left(\text{mod} \ p\right)$$[15] 같은 간단한 식도 $$ p $$가 소수일 때에 성립하는 식들이다.
정수론에서 이렇게 소수에 열광하는 이유는 바로 소수들에 대해서 알면 바로 정수 전체에 대해서 알 수 있기 때문이다. 대표적인 예로 하세-민코프스키 정리가 있는데, 모든 $$p$$진 체와 실수 집합에 대해서 유리계수 이차형식이 해를 가지면 유리수 위에서 해를 가진다. 그러니까 모든 소수들 (실수 집합도 하나의 소수라고 보자.)에 대해서 해를 가지고 있다면 바로 유리수에 대한 존재성으로 생각할 수 있다.
사실 이 p진체라는 것이 대수적 정수론에서 매우 중요한 개념인데, 이는 실수와 다른 방향으로의 유리수의 완비화로서 헨젤의 보조정리를 통해 정수의 국소적 성질이 옮겨질 수 있고, 위상적 성질도 꽤나 간단하며 이를 이용해서 adele이라는 개념을 정의하여 소수의 곱도 위상적으로 나타낼 수 있다. 이의 응용으로 p진 양자역학이라는 것도 있다.
3.2. 산술함수
정수론 연구를 위해 만든 특수함수들이 있는데 이를 산술함수라고 한다. 최대공약수, 최소공배수, 약수 함수, 소인수 계량 함수 같은 기초적인 것부터 뫼비우스 함수, 오일러 파이 함수, 폰 망골트 함수, 체비쇼프 함수 같은 것까지 지겹도록 접하게 된다.
엄밀한 의미의 산술함수라고 볼 수는 없지만 집합 판별 함수[16] , 리만 제타 함수, 로그 적분 함수 같은 것도 자못 많이 쓰인다.
3.3. 디오판토스 방정식
디오판토스 방정식 또한 정수론에서 중심적으로 연구하는 주제이다. 1차 연립방정식이나 펠 방정식처럼 간단한 문제부터 타원곡선 같은 현대의 복잡한 방정식까지의 다양한 다항방정식의 정수해에 대해서 연구한다. 디오판토스 방정식을 풀기 위해서 다양한 이론이 개발되었는데 일례로 대수학의 아이디얼이 19세기에 페르마의 마지막 정리를 연구하던 중 탄생했다.
4. 현대의 연구
현대 정수론은 대수(代數)적인 방법이나 해석적인 방법론(주로 복소해석학)을 사용한다. 전자의 경우를 대수적 정수론, 후자를 해석적 정수론 이라고 하며, 대수적 정수론은 대수학적 방정식의 정수 해를 찾는 문제에서 시작되었고, 해석적 정수론은 소수와 관련된 이론에서 출발하였다. 물론 이 두 가지 분야는 엄밀하게 나누어지는 것은 아니며, 사용되는 방법론 상에서의 차이가 가장 크다. 가장 간단하게 차이를 설명하자면, 대수적 정수론은 대수학적 기법들을 주로 사용한다면 해석적 정수론은 부등식을 많이 사용한다고 말할 수 있다.
다른 현대 수학들과 마찬가지로, 정수론 분야 역시 수학의 다른 여러 분야들과 밀접한 관련을 가진다. 즉, 정수론의 연구에서는 대수학이나 해석학, 조합론 등의 다른 분야에 대한 지식이 필요하다는 것이다.
5. 공부, 교재 추천
5.1. 교재
호기심이든 진지한 수학 쪽 진로설정이든 간에 정수론에 입문코자 한다면 우선 한국수학올림피아드 대비교재를 보는 게 가장 좋다. 시중의 올림피아드 교재는 대부분 중학생을 타겟으로 하기 때문에 기본 수학실력이 탄탄한 고등학생이나 성인이라면 무난히 읽을 수 있다. 유명한 건 <한국수학올림피아드 바이블>이나 티투의 <104 정수론>, 김광현의 <마두식의 정수론>이 괜찮다. 다른 올림피아드 시리즈도 그렇지만, 정수론은 특히 한번 제대로 공부해 놓으면 고등학교 수학은 물론이고 '''수학과 중반까지도 도움이 되는''' 어마무시한 약발을 자랑한다.
실제 영재학교 시험에서는 빈번하게 출제되 고 있어서 대부분의 입시 준비 학원에서는 정수론을 가르치기도 한다. 아예 정수론이 선택과목으로 박혀있는 영재학교들도 있다.
대학 교재로 사용되는 수준에서는 아래와 같은 책들이 추천된다.
- Joseph H. Silverman-<친절한 수론 길라잡이>
경문사에서 출간되었다. 교수 4명이 번역했는데도 온갖 드립이 포함되어있다. 물론 원서 자체가 이런 스타일의 편안한 느낌의 책이다. 이 책은 굳이 대학 수업을 듣지 않더라도, 어느 정도의 수학 지식만 있으면 혼자 읽는 데에 적합한 내용으로 이루어져 있다.
- 박승안, 김응태- <정수론>
한국 대학 수학과에서 엄청난 고전이며, 많은 대학의 수학교육과에서 교재로 사용했던 책이다.
- Godfrey H. Hardy, Edward M. Wright-
정수론 입문서계의 가장 대표적인 책이다. 일반적인 학부 수준 정수론 교재의 내용 이외에도 이차 수체, 소수 정리의 초등적 증명, 디오판토스 근사, 타원 곡선 등의 내용을 포함하고 있다. 책 자체의 설명은 말 그대로 'Hardy 스타일'이다. 호불호가 갈리기는 하지만, 정말 훌륭한 입문서이다. 단점으로는 연습문제가 아예 없다는 점이 있다.
다소 특이한 정수론 입문 서적으로, 란다우 특유의 스타일로 집필되어 있다. 즉, 공리에서 출발하여 여러 명제들을 차례로 증명하는 방식으로 나아가는 방식이다. 논리적 엄밀성과 증명 기법 등이 돋보이기 때문에 수학자들은 호평한 책이지만, 배우는 사람의 입장에서는 다소 난처하게 느껴질 수 있다.
5.2. 공부 방법
기초 수준의 정수론을 공부하는 데 있어 가장 핵심적인 것은
- 정수의 구조-정수론의 여러 정리들은 기본적으로 수학적 귀납법이라는 양의 정수의 구조에서 기인한다. 양의 정수의 공집합이 아닌 부분집합에 대해, 최소원을 잡는 것이 가능하다는 사실은 나눗셈 정리와 베주 항등식, 그리고 더 나아가면 베주 항등식에서 유도되는 유클리드의 보조정리와 산술의 기본정리 까지 쓰인다. 정수론의 핵심 주제 중 하나인 소수라는 특별한 원소들을 효과적으로 다룰 수 있는 이유는 이러한 토대들이 있기 때문이다.
- 정제성(나누어 떨어짐)
- 소인수분해
- 최대공약수와 최소공배수
- 합동식과 정리 사총사 - 오일러의 정리, 페르마의 소정리, 윌슨의 정리, 중국인의 나머지 정리
- 가우스의 2차 잉여
- 부정방정식과 피타고라스 수, 쌍둥이 소수 등의 집합족
- 소수 정리와 로그 적분 함수, 리만 제타 함수
- - 실제로 해석적 정수론으로 가면 문제 하나하나가 노가다의 향연이라고 봐도 과언이 아니다.
기초 수준 이상의 내용을 다룬 교재들은 대수적 정수론, 해석적 정수론 문서에 소개되어 있다.
6. 관련 문서
[1] 줄여서 'NT', 'theory of numbers'라고 칭하기도 한다.[2] 방정식의 정수 해가 나오는 경우나 정수 해의 개수 등도 정수론에서 다루는 문제들이다.[3] 정수, 대수, 기하, 조합 분야로 나뉜다.[4] 흥미롭게도 정수론에서는 '''잉여계에 대해''' 깊게 연구한다(...). 정수론을 공부하다 보면 이차 잉여 등 나머지와 연관 지어서 '잉여'라는 단어를 상당히 많이 볼 수 있다. 이 각주 또한 정말 잉여스러운 정보이다.[5] 예를 들어, 현재까지 쌍둥이 소수(두 수의 차가 2인 소수의 쌍)의 무한성이 증명되지 않았는데, 증명 여부에 따라 쌍둥이 소수가 암호로서 가지는 능력이 결정될 수 있다. 유한하다면 컴퓨터로 해결할 수 있지만 무한하다면 얘기가 달라지기 때문이다.[6] 반올림 오류의 한 예로, 루트 2는 1.41421356237…로 계속되는 무리수인데, 물리법칙에 따라 만들어진(시공간적인 제한이 있는) 컴퓨터로는 무한한 길이를 가진 '''루트 2의 정확한 값을 저장할 수 없다.''' 그리고 대신 저장한 근삿값인 1.41421356237를 제곱하면 2가 나오지 않고 1.9999999999가 나온다. 이런 오차는 정보를 정확히 저장해야 하는 컴퓨터의 입장에서는 사용하기 곤란하다. 이걸 해결하려면 소프트웨어적으로 "루트 2"라고 저장하고 제곱을 비롯한 계산을 할 때 따로 처리를 해주는 골룸한 짓거리를 해야 한다.[7] 앞의 주석에서는 루트 2 라는 무리수의 예로 들었지만, 실제로는 문제가 더 심각해서 유리수에도 오차가 발생한다. 컴퓨터 공학 비전공자를 위해 최대한 이해가 쉽게 설명하면, 컴퓨터의 floating point 시스템은 소수점 이상과 소수점 이하를 합쳐서 표현할 수 있는 '유효 숫자' 자리수에 한계가 정해져 있다. 설명을 위해 유효 숫자 자리수가 예를 들어 6 자리라고 가정하자. 그럼 12345600, 1234560, 123456, 12345.6, 1234.56, 123.456, 12.3456 1.23456, 0.123456, 0.0123456, 0.00123456 등은 모두 표현 가능하다. 12345600 은 8 자리인데 왜 유효 숫자가 6 개인지 의문을 가질 수 있는데, 이 경우에는 소수점 이하의 값이 없고(0 이고) 동시에 소수점 이상에서 일의 자리와 십의 자리 둘다 0 이기 때문에 이는 유효 정보가 없는 것으로 취급할 수 있기 때문이다. 0.00123456 도 명목상으로는 소수점 이하 8 자리이지만 비슷하게 소수점 이상의 값이 없고(0 이고) 소수점 이하에서도 처음 두 자리 모두 0 이라 똑같이 유효 정보가 없는 것으로 간주할 수 있다. 즉 앞에서 든 모든 숫자에서 유효 정보는 모두 123456 으로 6 자리 동일하다. 이 유효 정보에다 다른 추가 정보를 사용해서 앞에서 든 값을 각각 구분해서 표현하는 것이다. 자 그런데 12345600 과 값이 단 1 차이인 12345601 을 생각해보자. 값이 단 1 차이지만, 12345601 은 일의 자리가 0 이 아니므로 이를 정확하게 표현하기 위한 유효 숫자는 이제 8 자리로 늘어난다. 하지만 앞에서 유효 숫자는 6 자리가 한계라고 가정했기 때문에, 12345601 은 유효 숫자 6 자리로 표현할 수 있는 근사값 12345600 (혹은 12345700) 으로 쓰여야 하고 오차가 발생해버린다. 마찬가지로 0.001234561 은 0.00123456 와 겨우 0.000000001 차이에 불과하지만 표현할 수 없는 숫자가 되어 0.00123456 (혹은 0.00123457) 로 쓰여야 하고 오차가 발생해버린다.[8] 게다가 CPU 구현자에게 floating point 간의 사칙 연산에서 약간의 계산 오차를 낼 수 있도록 허용하고 있다는 것도 오차의 한 발생 요인이다. CPU 에서 floating point 연산 기능을 구현하는 것이 정수 연산 기능을 구현하는 것보다 훨씬 훨씬 복잡하기 때문에 floating point 시스템이 널리 채택되려면 CPU 구현자의 편의를 조금은 봐줄 필요가 있기 때문이다. 쉽게 말해서 똑같은 floating point 값을 가지고 똑같은 계산을 Intel CPU 와 Arm CPU 에서 수행시켜서 그 결과를 비교해보면 둘 사이에 약간의 오차가 있는 것을 확인할 수 있는데, 그렇다고 어느 한쪽이 맞고 어느 한쪽이 잘못된게 아니라 둘 다 floating point 표준에 부합하는 결과로 인정되는 것이다.[9] $$xyz\ne0$$인 해[10] 내용은 대부분 이해할 수 있지만, 풀이는 대수기하학, 대수적 정수론에 대한 전문적인 지식이 충분해야 이해할 수 있다.[11] 사실 가우스가 페르마의 마지막 정리를 비하(?)하면서 내뱉은 말이다. 누군가가 가우스에게 페르마의 마지막 정리를 해결해보라고 권유했는데, 가우스는 매우 불쾌해하면서 '나도 그런 문제는 얼마든지 만들 수 있다.'라고 했다. 그도 시도했다가 못 풀었기에 자존심 면에서 그렇게 말한 것으로 추정된다.[12] 사실 소수나 소수의 곱으로 나타낼 수 없는 단 둘뿐인 정수가 있다. 다름아닌 0과 1.[13] 전자가 성립하면 후자도 성립하지만 역은 성립하지 않는다. 그리고 후자는 2013년에 증명되었다.[14] 윌슨의 정리 즉 (p-1)의 계승을 p로 나눈 값은 p-1이다.(-1=-p+?,?=p-1),여기서 p는 소수이다.[15] 페르마의 소정리.[16] 산술함수의 정의에 쓰인다. 가령 소수 계량 함수는 소수 집합을 판별하는 함수의 측도로 정의되고($$\displaystyle \pi(x) \equiv \int_{[1,x]} \bold{1}_{\mathbb{P}} (t) \,\mathrm{d} \lfloor t \rfloor$$), 폰 망골트 함수는 정의식에 자연로그를 제외하면 집합 판별 함수로 채워져 있다($$\Lambda(n) \equiv \dfrac{\displaystyle \ln n \,\bold{1}_{\{1\}} \left( \sum_{c|n}^{} \bold{1}_{\mathbb{P}}(c) \right)}{\displaystyle \sum_{d^x|n}^{} x\,\bold{1}_{\mathbb{P}}(d) + \bold{1}_{\{1\}}(n)}$$).