0으로 나누기(divide by 0)는 산술에서 정의하지 않는 것들 중 하나이다. 어떤 수를 0으로 나눌 경우 일반적인 수체계에는 모순이 생긴다.
0으로 나누기가 금칙사항☆정의되지 않은 이유
수학에서 0으로 나누기는 정의되어 있지 않으며, 이는 곱셈 연산의 결과를 유일하게 하기 위해서이다. [math]\displaystyle{ a }[/math]를 [math]\displaystyle{ b }[/math]로 나눈 결과가 [math]\displaystyle{ c }[/math]라는 것은 [math]\displaystyle{ a=bc }[/math]와 완전히 같으며, 여기서 [math]\displaystyle{ b }[/math]가 0이라면 [math]\displaystyle{ a }[/math] 역시 0일 수밖에 없다. 즉 이는 [math]\displaystyle{ c }[/math]에 대한 부정형이 되어 결과가 유일하지 않다.
흔히 말하는 1/0=∞는 사실 극한 형태이며, [math]\displaystyle{ \lim_{n \to 0} \frac{1}{n} = \infty }[/math]를 나타낸다. 만약 위 식대로 쓰면 ∞=1/0=1/(-0)=-∞라는 ㅁㄴㅇㄹ한 결과가 나오게 된다. 그런데 이를 참으로 여겨 어??? 수직선([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]이라는 evergreenc 같은 소리는 하지 않는 게 좋다. 이항이 성립하지 않을 뿐만 아니라 저건 저 체계에서만 성립게 한 정의이기 때문이다.
프로그래밍 언어의 처리
위에 있는 0으로 나눴더니 스파크가 튀면서 칩이 손상된다는 동영상은 조크다. 0으로 나눈다고 스파크 튀면서 불나진 않으니 안심. 대부분의 프로그래밍 언어에서는 0으로 나누면 Divide-by-Zero 오류를 내고, 예외 처리가 없으면 시스템이 정지된다. 하지만 지금 시대에 이런 기초적인 예외 처리를 하지 않는 경우가 있을리가. 0으로 나눈다고 시스템이 정지되는 일도 없다는 이야기.하지만 의도한다면 어떨까