mir.pe (일반/어두운 화면)
최근 수정 시각 : 2024-03-06 18:21:56

48÷2(9+3)

1. 개요2. 역사3. 결론
3.1. 문제의 핵심: 표준 문법의 부재
4. 당시 사람들의 주장
4.1. 답은 2이다4.2. 답은 288이다4.3. 수식 자체가 잘못되었다
5. 전파 및 유사 사례6. 관련 문서

1. 개요

2011년 초반 인터넷을 달구었던 수학 떡밥.

2. 역사

미국의 한 수학 시험에 출제된 문제로 분명히 수식만 보면 단순해보이나, 실은 이것을 어떻게 해석하느냐에 따라 답이 2와 288로 나뉜다.
어느 쪽이 답인가에 대한 논쟁이 일어났고 미국의 한 인터넷 커뮤니티에서 전파되어 곧 전 세계 커뮤니티와 학계를 뒤흔든 희대의 수학 떡밥이 되었다.

이를 풀어내기 위해 매스매티카, 파이썬 같은 프로그래밍 언어와 각 회사의 공학 계산기들이 총동원되었으나 각자 다른 답과 해석을 내놓았으며, 대학교수들의 자문까지 얻었지만 해결되지 않고 2파와 288파로 나뉘어 논쟁이 점점 더 카오스가 되었다. 한 술 더 떠서 아예 문제 자체에 오류가 있으므로 답이 없다고 주장하는 사람들도 이 논쟁에 가세했다.[1]

단순한 문제이지만 수학계에서도 논란이 되었고, 특히 수학교육학에서는 중요한 주제로 다뤄지기도 했다.

3. 결론

문제로서 성립하지 못한다.

이 문제의 핵심은 병렬 배치로 곱셈을 표현(multiplication by juxtaposition, 한마디로 a×bab로 표기하는 것을 의미한다. 이하 MJ)하는 것의 애매모호함이다. 이 MJ는 계산을 간략히 표기하기 위한 일종의 관습이기도 한데, 이 것을 곱셈 연산 *의 또다른 표기로 보느냐, *와 연산 결과는 같으나 연산의 우선순위는 다른 별도의 연산으로 보느냐에 따라 계산 결과가 달라진다.

사람들의 주장도 결국 크게 나누면 'MJ와 곱셈/나눗셈은 동등한 우선순위를 지닌다.', 혹은 'MJ는 곱셈/나눗셈에 우선한다.' 가운데 한쪽으로 귀결되며, 상세한 관련 예시들을 들어 주장하고 있을 뿐이다. 순위가 동등하면 원제의 결과가 288, MJ 우선이면 2이다.

3.1. 문제의 핵심: 표준 문법의 부재

수학 버전 중의적 표현으로도 볼 수 있다.

이 문제의 핵심은 연산자 우선 순위에 관련된 형식 문법(Formal grammar)을 어떻게 정의하느냐에 있다. 수학 수식 역시 형식 언어의 일부로 간주될 수 있는데, 이 때 이 수식을 의미론적으로 어떤 의미를 가지는 형태로 변환해야 하느냐에 대한 논쟁인 것이다.

이는 기준이 될 수 있는 문법이 없기 때문에 발생하는 단순 표기법의 문제이며, 실제 문제의 본질과는 아무런 관련이 없다. 즉, 학계에 통용되는 표준 문법이 있다면 이런 문제 자체가 있을 이유가 없지만, 안타깝게도 수학계 전반에서 통용되는 표준 문법이란 현 시점에는 존재하지 않고, 앞으로도 존재하기 힘들 것이다. 대부분의 수학적인 표현법 자체가 파급력 있는 논문에서 임의로 정의된 이후 사람들이 그 논문을 참조하면서 퍼져 나가는 것이기 때문. 논문을 낼 때마다 표기법에 대해 학계 전반의 동의를 구해야 한다면 논문 쓰기 참 힘들 것이다.

실제 전공 서적들에서는 모호하게 표기하지 않거나, 서장이나 관련 챕터에서 이후에 사용할 표기법을 적어놓고 넘어가므로 이런 문제는 발생하지 않는다.

또한 MJ 문제는 중위표기법에서만 나타난다. 전위/후위식으로는 순서 문제가 발생하지 않는다. 다음은 역폴란드 표기법 으로 쓴 것인데 식이 달라져서 중의적 해석이 불가능하다.
유사한 문제로는 프로그래밍 언어의 수식을 어떻게 해석하느냐의 문제가 있는데, 이 동네에서는 형식 언어론에 의해 언어 자체적으로 엄밀하게 정의한 문법에 기반하여 해석한 뒤, 이를 모호함이 없는 형태의 수식[2]으로 변환하여 처리하므로 이런 문제는 발생하지 않는다. (위에서 언급된 수학 프로그램/계산기는 자체적으로 정의한 문법을 토대로 수식 해석기를 만들어 쓰는데, 이 문법이 서로 다른 것 뿐이다.)

파일:aP7Gg.jpg
실제로 공학용 계산기 간에도 계산 순서가 다르게 설정되어 있기 때문에, 서로 다른 답을 보여준다. #

4. 당시 사람들의 주장

4.1. 답은 2이다

48÷2와 (9+3) 사이에 곱셈 기호가 없기 때문에 2(9+3)을 한 항으로 간주하여 먼저 계산하여야 한다. 그러므로 48÷{2(9+3)}=48÷24=2이다.
48÷2(9+3)
=48÷(18+6)(분배법칙)
=48÷24
=2
}}}
48÷2(9+3)=48÷2*(9+3)=288
48=48÷2*(9+3)*2(9+3)
1=1÷2*(9+3)*2(9+3)
2=2÷2*(9+3)*2(9+3)
2=(9+3)*2(9+3)
2/(9+3)=2(9+3)
}}}

4.2. 답은 288이다

48÷2와 (9+3) 사이에는 곱셈 기호가 생략되어 있을 뿐이다. 사칙연산에서 곱셈과 나눗셈은 왼쪽부터 계산한다. 그러므로 48÷2×(9+3)=288이다.

4.3. 수식 자체가 잘못되었다

이 식은 우선 수식 내부에서 /과 ÷는 대개 같이 사용하지 않으며, 곱셈기호를 생략하기 위해서는 대부분 ÷가 아닌 /를 사용한다는 사실을 간과했다. 다시 말해 곱셈기호를 생략할 때 사용하는 2차원 식인 분수를 /를 사용하여 1차원 식으로 표현한 것을 /을 ÷로 바꾸는 바람에 생기는 오류라고 할 수 있다.

실제로 MS Office 엑셀[10] 또는 MATLAB을 이용하여 위의 수식을 계산해보면 오류를 출력하는 것을 볼 수 있다. 즉, 표기의 오류 때문에 위의 식에서 48÷2(9+3)을 한 항으로 해석해야 하는가, 아니면 독립된 항으로 해석해야 하는가를 두고 논란이 일어난 것이다.

계산기 중에서는 HP Prime(CAS 모드)가 에러를 뿜는다. 48/2(9+3)을 입력하면, f(x)=48/2인 상수함수에 9+3을 대응한 값으로 인식하여, 24를 뱉는다.

'수와 수 사이의 곱셈을 생략하지 않는다.'는 규정은 2×3에서 곱셈을 생략할 경우 23이 되므로 자연수 23과 2와 3의 곱이 구분되지 않기 때문이다. 수와 괄호 사이엔 곱셈 생략이 허용된다.[11] '상수만일 경우엔 생략을 하면 안 된다.'는 규칙이 있다는 의미보다는 일반적으로 할 필요가 없기에 하지 않는다는 뜻이 더 가까운 표현이다. 따라서 저 정의대로 한다 하더라도 2·(9+3)으로 썼어야 했다는 얘기. 그 밖에도(2)(12)등 여러 표기가 있으나 곱셈 기호 생략의 목적이 편의를 위해서인데 더 귀찮아지므로 거의 안 쓴다. 굳이 예를 들면 (1/2)×(1/4)×(1/8)을 (1/2)(1/4)(1/8)로 표기한다든지. 48÷2(9+3)의 경우에는 2에 괄호가 없어서 점점 더 미궁속으로...[12] [13]

다른 수식을 예로 들자면, 1/2/4같은 경우가 있다. 1÷2÷4라면 0.125가 답이겠지만, 1/2/4라면 그것이 0.5/4인지 1/0.5인지가 애매하기 때문이란 것. 여기서도 위에서 언급한 MJ와 ×의 관계처럼, /가 ÷를 표기만 다르게 한 것인지, ÷보다 우선순위가 다른 새로운 연산인지 정해지지 않았다. 애초에 /는 나누기보단 분수로서의 표현으로 자주 쓰인다[14] 이러한 표기에서 비롯되는 해석의 모호성은 수식에서뿐만 아니라 언어에서도 나타난다. 이는 아버지가방에 들어가신다와 같은 맥락.

그러므로 애초에 문제에 오류가 있으니 하나로 정해지지 않은 답을 논하는 것 자체가 오류라는 것이 핵심이다. 그래서 최근 계산기에서 기호를 넣지 않고 괄호를 시작하거나 끝난 괄호 뒤에 기호를 안 넣고 숫자를 입력할 경우 자동으로 곱셈기호를 중간에 넣어주는 경우도 있다. 관례를 지키는 한편 오류도 피하는 것.

아래의 링크에 비슷한 사례가 있다.

http://jeff560.tripod.com/operation.html
Modern textbooks seem to agree that all multiplications and divisions should be performed in order from left to right. However, in Florida Algebra I published by Prentice Hall (2011), a problem asks the student to evaluate 3st2 ÷ st + 6 for given values of the variables, and the answer provided comes from dividing by st. A representative for the publisher has acknowledged that the expression is ambiguous and promises to use (st) in the next revision.
현대수학은 왼쪽에서 오른쪽으로 계산하는걸 원칙으로한다. 그러나 일부 책에서는 다르게 계산하는 방법으로 풀었는데 다음 개정판에서는 혼동을 방지하기 위해서 괄호를 넣을 것이다.

5. 전파 및 유사 사례

6. 관련 문서

연산
Numbers and Operations
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
<colbgcolor=#765432> 수 체계 자연수 ( 홀수 · 짝수 · 소수 · 합성수) · 정수 · 유리수 ( 정수가 아닌 유리수) · 실수 ( 무리수 · 초월수) · 복소수 ( 허수) · 사원수
표현 숫자 ( 아라비아 숫자 · 로마 숫자 · 그리스 숫자) · 기수법( 과학적 기수법 · E 표기법 · 커누스 윗화살표 표기법 · 콘웨이 연쇄 화살표 표기법 · BEAF· 버드 표기법) · 진법 ( 십진법 · 이진법 · 8진법 · 12진법 · 16진법 · 60진법) · 분수 ( 분모 · 분자 · 기약분수 · 번분수 · 연분수 · 통분 · 약분) · 소수 { 유한소수 · 무한소수 ( 순환소수 · 비순환소수)} · 환원 불능 · 미지수 · 변수 · 상수
연산 사칙연산 ( 덧셈 · 뺄셈 · 곱셈 구구단 · 나눗셈) · 역수 · 절댓값 · 제곱근 ( 이중근호) · 거듭제곱 · 로그 ( 상용로그 · 자연로그 · 이진로그) · 검산 · 연산자 · 교환자
방식 암산 · 세로셈법 · 주판 · 산가지 · 네이피어 계산봉 · 계산기 · 계산자
용어 이항연산( 표기법) · 항등원과 역원 · 교환법칙 · 결합법칙 · 분배법칙
기타 수에 관련된 사항 ( 0과 1 사이의 수 · 음수 · 작은 수 · 큰 수) · 혼합 계산 ( 48÷2(9+3) · 111+1×2=224 · 2+2×2) · 0으로 나누기( 바퀴 이론) · 0의 0제곱 }}}}}}}}}


[1] 조용한 갤러리 축에 들어갔던 디시인사이드 수학 갤러리는 당시에 이 떡밥으로 하루에 100페이지가 넘는 글들이 난립하였다. [2] AST(Abstract syntax tree : 추상 구문 트리)라고 한다. [3] multiplication indicated by juxtap-osition is carried out before division. Thus, in general, for any variables a, b and c, we would have a/bc = a/(bc) (assuming, of course, that b and c are nonzero.) [4] 위 출처글의 경우, 6÷2×3의 경우와 a÷bc(단, a=6,b=2,c=3)의 경우 왜 답을 다르게 인식하느냐 하는 예시를 문제로 제시한다. 전자의 경우 순서대로 계산하여 답이 9라고 대답하지만, 후자의 경우 bc가 같이 분모가 되는 것으로 보아 1이라고 대답한다는 것. [5] 특히나 fx-9860G III의 경우 48÷2(9+3)을 입력할 경우 자동으로 괄호가 삽입되어 48÷(2(9+3))이 입력된다.(fx-9860G II도 똑같다. 어차피 II나 III나 기능은 대동소이하다.) 국민 계산기라 불리는 fx-570ES Plus도 2가 나오며, 570 시리즈의 최신기종인 fx-570CW에서도 fx-9860G 시리즈와 마찬가지로 자동으로 괄호를 넣어준다. [6] 좌항을 계산해서 우항이 나왔으면, 우항을 잘 조립하면 좌항이 다시 나올 수 있어야 한다는 조건. [7] 다만 Mathway 라는 엔진은 예외. 이 엔진은 2(9+3)을 전부 분모로 인식하고 2를 출력한다. 위에서 언급한 것과 같이 이 엔진에도 2*(9+3)으로 입력하면 288을 출력. [8] 카시오에서 제공하는 앱인 ClassPad에서 288을 내놓는다. ClassPad의 실물 계산기 버전인 fx-CP400, 추가로 일반 프로그램용 계산기인 fx-5800P가 288을 내놓는다. [9] 교육과정이 이후로도 바뀌겠지만 해석이 달라진 것은 없다. [10] 사용자가 입력한 수식에 문제가 있습니다. 다음과 같은 수식으로 변경하시겠습니까? =48/2*(9+3) 라고 묻는 창이 뜬다. [11] 정확히는 아얘 생략을 해버리는게 아니라 3·4 식으로 점을 찍어 간략하게 표현한다. [12] 대수학에서 문자로 나타낸 식에 대입하는 과정에선 괄호를 한 쪽만 쳐도 되지만 이 경우는 아니다. [13] 사실 2(9+3)같은 방식으로 곱셈을 생략하는 표기는 대학수학에서 일상적으로 쓰는 표기이다. James Stewart의 calculus, Stanley Ocken의 Math Review for Algebra and Precalculus, 그외 여러 원서에서도 수와 괄호 사이의 곱셈을 생략하는 경우는 흔하게 볼 수 있다. # [14] 애초에 분수는 곱셈과 달리 괄호를 생략해도 되기 위한 기본 조건인 결합법칙부터가 성립하지 않는다. 하지만 곱셈은 결합법칙이 성립하는데 곱셈을 반박하기 위해 결합법칙이 성립하지 않은 것을 가져온 이 예시는 부족한 근거라고 볼 수 있다. [15] 7÷7과 7×7을 먼저 처리하면 7+1+49-7이 된다. 즉, 답은 50이다.