이천여 년 전, 사람들은 '양을 세기' 편하게 하기 위해 자연수를 발명했습니다. '양 한 마리'의 개념은 이해하기 쉬웠고, 이어서 '양 두 마리', '양 세 마리'와 같은 식으로 이어졌습니다. 사람들은 곧 이렇게 계속 세는 것이 엄청난 작업량이라는 것을 깨달았고, 어느 시점에서 세는 것을 포기하고 대신 '많은 양'으로 대체했습니다. 문명마다 다른 지점에서 세기를 포기했습니다. 문명이 발전함에 따라, 점차 '숫자'에 대해 전문적으로 생각하는 사람들을 지원할 수 있게 되었습니다. 이 현자들은 생계 문제를 걱정할 필요가 없었습니다. 그들은 '영(0)'의 개념(양이 없음)을 확립했습니다. 그들은 모든 자연수에 이름을 붙이는 대신 다양한 계수 체계를 발전시켰고, 필요할 때 자연수에 이름을 붙여 숫자 '1', '2' 등을 사용했습니다(로마인은 'I', 'V', 'X' 등을 사용했습니다). 그렇게 수학이 탄생했습니다.
사람들은 양을 한 줄로 세워놓고 세는 습관이 있었는데, 이는 수직선 개념의 탄생으로 이어졌습니다. 직선 위에 일정한 간격으로 숫자를 표시하는 것입니다. 이론적으로 수직선은 무한히 연장될 수 있지만, 편의상 특정 수치까지만 표시하고 그 뒤에는 화살표를 써서 수직선이 연장될 수 있음을 나타냅니다. 역사 속의 사상가들은 이것이 무한히 큰 수를 나타낼 수 있다고 생각했지만, 양 장수들은 그 개념을 이해하지 못했을 것입니다. 그것은 이미 그들의 상상력을 초월한 것이었기 때문입니다.
만약 당신이 말을 잘한다면, 실제로 가지고 있지 않은 양을 사라고 다른 사람을 설득할 수 있을 것이고, 이로 인해 부채와 음수의 개념이 생겨났습니다. 이 상상 속의 양을 팔면, 당신은 실제로 '마이너스 한 마리'의 양을 갖게 됩니다. 이런 상황이 자연수와 그 반대되는 수(음수)로 이루어진 정수의 탄생으로 이어졌습니다.
가난의 출현은 분명 부채보다 앞섰으며, 가난으로 인해 일부 사람들은 양 반 마리, 심지어 4분의 1마리밖에 살 수 없었습니다. 그래서 분수가 생겨났습니다. 분수는 한 정수를 다른 정수로 나누어 형성됩니다(예: 2/3, 111/27). 수학자들은 이 숫자들을 유리수라고 불렀고, 유리수는 수직선 위 정수 사이의 공백을 메웠습니다. 편의를 위해 사람들은 길고 복잡한 31415/10000 대신 소수점 표기법을 발명하여 '3.1415'로 사용했습니다.
얼마간의 시간이 흐른 후, 사람들은 일상생활에서 사용하는 일부 숫자들이 유리수로 표현될 수 없다는 것을 발견했습니다. 가장 전형적인 예는 원의 둘레와 지름의 비인 PI입니다. 이것이 소위 실수의 탄생을 가져왔습니다. 실수는 유리수와 PI와 같은 무리수를 포함하며, 소수 형태로 표현할 경우 소수점 아래로 무한히 많은 자릿수가 필요합니다. 실수 수학은 공학의 기초이기 때문에 많은 사람에게 수학에서 가장 중요한 분야 중 하나로 여겨집니다. 인류는 실수를 사용하여 현대 문명을 건설했습니다. 가장 멋진 점은 유리수는 셀 수 있는 반면, 실수는 셀 수 없다는 것입니다. 자연수와 정수를 연구하는 분야를 이산 수학이라 하고, 실수를 연구하는 분야를 연속 수학이라 합니다.
사실 실수는 문명 문화에 의해 인정된, 관습적인 개념일 뿐입니다. 많은 유명한 물리학자들은 우주가 이산적이고 유한하기 때문에 실수는 단지 착각일 뿐이라고 믿습니다. 만약 현실 세계가 유한한 수의 이산적인 사물들로 구성되어 있다면, 우리는 특정 고정된 값까지만 셀 수 있을 것입니다. 왜냐하면 세상의 모든 사물을 이미 다 세었기 때문입니다(우리만 양을 다 센 것이 아니라 토스터, 수리공 등도 모두 세어버린 것입니다). 이로부터 우리는 이산 수학만으로도 우주 전체를 묘사할 수 있으며, 자연수의 유한한 부분 집합(매우 크지만 셀 수 있는)만 있으면 된다고 결론 내릴 수 있습니다. 어쩌면 우주에는 우리의 기술을 초월한 문명이 존재하여, 그들은 연속 수학, 기본 미적분학 이론, 심지어 무한과 같은 개념을 들어본 적도 없을지 모릅니다. 그들은 PI를 사용하는 대신 3.14159(또는 더 정확한 3.1415926535897932382626433832795)만 사용하여 완벽한 세계를 건설할 수 있을 것입니다.
(《삼체 I》에서 외계인이 우주선에 점 하나만 찍어서 백과사전 전체를 가져가는 예가 나오는데, 바로 이 뜻입니다.)
그렇다면 왜 여전히 연속 수학을 사용할까요? 그것이 공학적으로 매우 유용하기 때문입니다. 하지만 현실 세계에서 사용되는 용어인 '실수'가 보통은 이산적이라는 뜻임에 주의해야 합니다. 3D 가상 세계의 설계자에게는 무엇이 중요할까요? 현실 세계와 마찬가지로 일련의 이산적이고 유한한 것들을 다루게 될 것입니다. C++에서 제공하는 short, int, float, double 등 다양한 데이터 타입을 사용하여 3D 가상 세계를 묘사할 수 있습니다. short는 16비트 정수로 65536개의 서로 다른 수치를 나타낼 수 있는데, 이 숫자가 커 보이지만 현실 세계를 측정하기에는 턱없이 부족합니다. int는 32비트 정수로 42억 개의 서로 다른 수치를 나타낼 수 있습니다. float는 32비트 유리수로 42억 개의 수치를 나타낼 수 있습니다. double은 float와 유사한 64비트 유리수입니다.
가상 세계를 위한 측정 단위를 선택하는 핵심은 이산적인 정밀도를 선택하는 것입니다. short, int는 이산적이고 float, double은 연속적이라는 잘못된 관점이 있지만, 실제로는 이 모든 데이터 타입이 이산적입니다. 예전의 컴퓨터 그래픽스 교재는 당시 하드웨어의 부동 소수점 처리 능력이 정수 처리 능력보다 약했기 때문에 정수를 선택하라고 권장하곤 했습니다. 하지만 지금의 하드웨어에서는 이러한 말은 구식이 되었습니다. 그렇다면 정밀도를 어떻게 선택해야 할까요? 컴퓨터 그래픽스의 제1원칙은 다음과 같습니다.
컴퓨터 그래픽스 제1원칙: 근사 원칙. 만약 보기에 옳다면 그것은 옳은 것이다.
(컴퓨터 속의 PI는 실수가 아니지만, 우리는 그것이 실수라고 생각하며 보편적으로 인정되는 그 소수라고 여깁니다.)
##후기
1D 수학은 1개의 수직선(이렇게 이해한다면 수는 연속적이라고 가정하는 것입니다), 2D 수학은 2개의 수직선(2D 데카르트 좌표계), 3D 수학은 3개의 수직선(3D 데카르트 좌표계)...
###참고 자료
- 《3D 수학 기초: 그래픽 및 게임 개발》
아직 댓글이 없습니다