48/2(9+3), 왜 이런 게 문제가 되지?

48/2(9+3), 이 수식의 답을 두고 2파와 288파가 나뉘어 싸우고 있다고 한다. 전산학 전공 입장에서 보자면, 이는 매우 단순한 Parsing 문제이다. 즉, 문제의 수식을 다음 중 어느 쪽으로 해석할 것인가의 문제이다. (해당 수식은 이 사이트를 통해 생성한 gif 파일이다.)

위 수식의 경우는 답이 288이요, 아래 수식의 경우에는 2가 될 것이다. 수학식의 계산 순서는,

  1. 괄호가 존재하면 괄호 내 식을 우선적으로 계산한다.
  2. 곱셈, 나눗셈이 더하기, 빼기보다 우선하고 각 둘 사이는 동등하다.
  3. 왼쪽으로부터 오른쪽으로 계산해 나간다. (즉 왼쪽의 연산자가 우선한다.)

라는 원칙에 따라서 움직인다. 빠른 원칙이 먼저 적용된다. 이에 따르면 아래 수식으로의 해석은 불가능하다. 나누기, 곱하기는 동등한 우선순위를 가지며, 따라서 2(9+3)=2*12의 곱셈을 먼저 계산한 후 그 결과로 나눌 이유가 없다. 다만 시각적으로 아래 수식을 한 줄에 표시한 것으로 보일 수도 있으나, 엄격하게 수학식의 규칙을 따른다면 답은 288이다. 곱셈 연산자의 생략은 단지 편의상의 생략일 뿐, 더 강한 우선순위를 정해주는 것은 아니다. 만약 2로 답을 내는 계산기가 있다면 그 계산기가 stack관리에 문제가 있는 제품이라는 뜻이다. 학부생이 계산기 프로그램 짜면 자주 틀리는 부분이기도 하다. -_-;;; 아니면 계산기를 만든 엔지니어가 곱셈의 생략을 분모로 표시하려는 의사로 간주했던지. 하지만, 그것은 편리할지는 몰라도 원칙에서 어긋난 잘못된 구현이다.

기계보다는 논리를 따라야 한다. 기계는 논리의 현실적 구현일 따름이다. 즉, 버그는 숙명이다. 사람은 시각에 크게 의존하니, 연산자를 생략한 부분이 더 높은 계산순위를 가지는 것으로 착각하는 것은 이해할 수 있다. 다만 그것을 가지고 문제가 있는 계산기까지 들먹이며 옳다고 우기면 곤란하다. 나도 소프트웨어 엔지니어 출신이지만, 전자기기란 버그 투성이이기 일쑤이다. 이 기계는 이러한 결과를 내고, 저 기계는 저러한 결과를 내니 두 결과가 존재할 수도 있다는 주장은 틀렸다. 거기에 괴델의 불완전성 정리처럼 수학문제는 답이 없거나 여러 개인 상태를 넘어서서 답이 있는지 없는지조차 모르는 상태가 종종 나오지만, 48/2(9+3) 수식 정도에서 그러한 문제가 터지면, 비행기는 떨어지고 인터넷은 바로 마비되어야 할 것이다. 간단히 말하면 아닌 건 아닌 거다. 48%2*(9+3)이면 누구도 이론이 없을 결과를 가지고 설왕설래하는 것은 보니 정말 외관에 홀리면 답이 없다.

그리고 한국의 수학, 논리학 교육 수준을 알 만 하다. 도대체 왜 이게 인터넷에서 난리여야 하나? 어떤 매체는 전세계 네티즌의 논란이라고 썼던데, 얼굴이 화끈거렸다. 수학공식 외울 줄만 알았지, 수학식의 계산 순서조차 모르는 사람들이 우글거리는 곳, 그 곳이 바로 대한민국이다. 더욱더 문제는 패거리를 이루면 옳게 될 수 있다고 믿는 사람들과, 그걸 두 답이 나왔다며 논란이라고 써 주는 언론의 무능한 기자들이다. 이러다가 마트에서 1플러스1 행사라면서 3개 줬다고 1+1=3이라고 우기는 작자들이 나타나지나 않을까 정말로 걱정된다.

One thought on “48/2(9+3), 왜 이런 게 문제가 되지?

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.