0으로 나누기

(영으로 나누기에서 넘어옴)

0으로 나누기(divide by 0)는 산술에서 정의하지 않는 것들 중 하나이다. 어떤 수를 0으로 나눌 경우 일반적인 수체계에는 모순이 생긴다.

정의되지 않은 이유[편집 | 원본 편집]

수학에서 0으로 나누기는 정의되어 있지 않다. 이는 곱셈 연산의 결과를 유일하게 하기 위해서이다.

초등학생 수준으로 예를 들면, 10개의 과자가 있고 그걸 사람들에게 나눠준다고 해보자. 만일 한 사람에게 2개씩 나눠준다면(÷2) 결과적으로 5명에게 나눠줄 수 있다. 그런데 오는 사람마다 과자를 하나도 주지 않는다(÷0)고 한다면, 제 아무리 사람이 몇 명 오던간, 과자가 줄어들리가 없으므로, 끝이 나오지 않게 된다.

같은 예시로 일반적인 나눗셈 정리를 하면, 10에는 2가 5개 있으므로 10÷2=5이다. 하지만 같은 방법으로 10÷0을 계산하려 하면, 0은 값이 없기 때문에 계산하지 못한다.

좀 더 일반적인 경우를 살펴보자. a를 b로 나눈 결과가 c라는 것은 a=b×c와 같다. 여기서 b가 0이라면 우변은 0이되고, 따라서 a 역시 0일 수밖에 없다. 그런데 이는 c의 값을 유일하게 정하지 않으므로 문제가 된다.

극한[편집 | 원본 편집]

흔히 말하는 [math]\displaystyle{ \frac 1 0 = \infty }[/math]에서 0은 [math]\displaystyle{ \lim_{x \to \infty} \frac{1}{x} }[/math]이므로, 정확히 0이지만, 사실 극한 형태이며, [math]\displaystyle{ \lim_{x \to \infty} \frac{1}{\frac{1}{x}} = \infty }[/math]를 나타낸다. 만약 [math]\displaystyle{ \frac 1 0 = \infty }[/math]로 정의하면 [math]\displaystyle{ \infty = \frac 1 0 = \frac 1{-0} = -\infty }[/math]라는 이상한 결과가 나오게 된다. 일반적인 실수 체계에서는 말도 안 되는 소리지만, 이를 참으로 여겨 수직선([math]\displaystyle{ \mathbb R \cup \{\infty \} }[/math])을 원으로, 복소평면([math]\displaystyle{ \mathbb C \cup \{\infty \} }[/math])을 구면으로 만들 수도 있다. 이를 각각 실사영직선, 리만 구라고 한다. 참고 물론 저 체계에서 [math]\displaystyle{ \infty = -\infty }[/math]이라고 해서 [math]\displaystyle{ 2\infty =0, \infty = 0 }[/math]이라는 소리는 하지 않는 게 좋다. 이항이 성립하지 않을 뿐만 아니라 일반적인 수체계에서는 성립하지 않는 정의이기 때문이다.

허용하게 되면?[편집 | 원본 편집]

0으로 나누는 연산이 수학에서 아예 존재하지 않는 것은 아니다. 0으로 나누기를 허용하기 전에, 0과 나눗셈에 대해 간단히 알고 가자.

대수학에서 0이란, 덧셈에 대한 항등원을 뜻한다. 즉, [math]\displaystyle{ a+e=e+a=a }[/math]가 성립하게 만드는 원소 [math]\displaystyle{ e }[/math]를 0으로 정의하는 것.

나눗셈이란, 어떤 수의 곱셈역원을 곱하는 행위를 뜻한다. 초등학교에서 말하는 "전체안에 부분이 몇 개"는 사실 정확한 비유가 아니며, 이해를 돕기위해 만든 설명일 뿐. 즉, [math]\displaystyle{ a\div b }[/math]는 사실 [math]\displaystyle{ a\times b^{-1} }[/math]을 뜻하며, [math]\displaystyle{ b^{-1} }[/math][math]\displaystyle{ b }[/math]의 곱셈에 대한 역원을 뜻한다.

한편, 어떤 수에 곱셈에 대한 역원을 곱하면 역원의 정의에 의해 곱셈에 대한 항등원이 나온다. 에서 곱셈에 대한 항등원은 보통 1로 정의하므로, [math]\displaystyle{ a\times a^{-1}=1 }[/math]이 성립한다. 여기까지 알았으면 0으로 나누기, 즉 0의 곱셈에 대한 역원이 존재한다고 가정해보자. 그럼, 역원의 정의에 의해,

[math]\displaystyle{ 0\times0^{-1}=1 }[/math]

가 성립한다. 한편, 임의의 수에 덧셈에 대한 항등원(= 0)을 곱하면 0이 나오므로,

[math]\displaystyle{ 0\times0^{-1}=0 }[/math]

따라서, 0=1이 성립한다. 이제, 환의 임의의 원소 [math]\displaystyle{ a }[/math]에 대해,

[math]\displaystyle{ a=a\times1=a\times0=0 }[/math]

이므로, 이 환에는 원소가 0밖에 없다.

따라서, 0으로 나누기를 허용하면 수가 0 단 하나뿐인 상황이 벌어지게 된다. 이러한 수체계를 영환(zero-ring)이라 부르며, 당연히 수학적으로 큰 의미가 없다. 이런 재미없는 상황을 방지하기 위해서 [math]\displaystyle{ 0\neq1 }[/math]를 가정하며, 이 조건은 0의 곱셈에 대한 역원이 존재하지 않음을 내포한다.

프로그래밍 언어의 처리[편집 | 원본 편집]


위에 있는 0으로 나눴더니 스파크가 튀면서 칩이 손상된다는 동영상은 재미를 위해 만든 것이다. 0으로 나눈다고 스파크 튀면서 불나진 않으니 안심. 대부분의 프로그래밍 언어에서는 0으로 나누면 Divide-by-Zero 오류를 내고, 예외 처리가 없으면 시스템이 정지된다. 하지만 지금 시대에 이런 기초적인 예외 처리를 하지 않는 경우는 없고, 시스템이 정지되는 일 역시 없다.

같이 보기[편집 | 원본 편집]

외부 링크[편집 | 원본 편집]