수와 연산 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. 개요
2011년 초반 인터넷을 달구었던 수학 떡밥.2. 역사
미국의 한 수학 시험에 출제된 문제로 분명히 수식만 보면 단순해보이나, 실은 이것을 어떻게 해석하느냐에 따라 답이 2와 288로 나뉜다. 어느 쪽이 답인가에 대한 논쟁이 일어났고 미국의 한 인터넷 커뮤니티에서 전파되어 곧 전 세계 커뮤니티와 학계를 뒤흔든 희대의 수학 떡밥이 되었다.이를 풀어내기 위해 매스매티카, 파이썬 같은 프로그래밍 언어와 각 회사의 공학 계산기들이 총동원되었으나 각자 다른 답과 해석을 내놓았으며, 대학교수들의 자문까지 얻었지만 해결되지 않고 2파와 288파로 나뉘어 논쟁이 점점 더 카오스가 되었다. 한 술 더 떠서 아예 문제 자체에 오류가 있으므로 답이 없다고 주장하는 사람들도 이 논쟁에 가세했다.[1]
단순한 문제이지만 수학계에서도 논란이 되었고, 특히 수학교육학에서는 중요한 주제로 다뤄지기도 했다.
3. 주장
3.1. 답은 2이다
48÷2와 (9+3) 사이에 곱셈 기호가 없기 때문에 2(9+3)을 한 항으로 간주하여 먼저 계산하여야 한다. 그러므로 48÷{2(9+3)}=48÷24=2이다.
- 미국 수학협회의 "multiplication indicated by juxtaposition is carried out before division."이라는 규정을 보면, 곱셈 기호가 생략된 병렬항의 계산이 나눗셈에 앞선다. 이 때문에 2(9+3)을 먼저 계산하고 나눗셈을 해야 한다라. 단, 위의 출처라고 할 수 있는 글은 AMS소스가 삭제돼있고, 구글 등 검색엔진에도 AMS소스는 없다. 웹아카이브를 통해 검색한 결과 2001년 까지는 위의 내용이 있었으나 변경된 것으로 확인되었다. 그리고 한 항은 더하기 단위인데 48과 2(9+3)사이에는 나눗셈 기호가 있다.
- Allendoerfer, Oakley의 저서 'Principles of Mathematics'도 답이 2라는 주장을 뒷받침해준다. 여기서는 "병치로 표시된 곱셈은 나눗셈 이전에 수행한다. 그러므로, 일반적으로, 임의의 a, b, c에 대하여 a/bc=a/(bc)가 될 것이다. (단, b와 c는 0이 아니다)" 라고 설명한다.[2]
- "288이 답이 되려면 1÷2x = 0.5x 도 맞아야 한다."라는 반례도 있다. 저렇게 적은 경우 x를 분모의 위치로 취급하기 때문에 (9+3)역시 마찬가지라는 주장이다.[3]
하지만 각종 계산 도구는 1/2x를 친히 x/2로 계산해주신다.. 응?
- 중간에 곱셈 기호가 생략되었다는 것은 잘못된 주장이다. 곱셈 연산자 ×(*)나 MJ와 달리 위의 식에서는 피연산자간의 교환을 허용하지 않는다. 즉, 2×(9+3)=(9+3)×2 이지만 (9+3)2는 2(9+3)과 달리 관습적으로도 쓰지 않으므로 식이 아니다. 따라서 답 288을 지지한다면 곱셈 연산자의 생략이 아닌, 의미는 같지만 피연산자간의 교환을 허용하지 않는 구문을 가진 새로운 연산자로 보는 것이 옳다.
- 일부 공학용 계산기(샤프제 공학계산기, 카시오 계산기 중 일부[4])에 저 수식 그대로 집어넣으면 답이 2라고 나온다. 2를 출력하는 계산기의 경우 48÷2×(9+3)으로 입력하면 역시 288을 출력한다. 즉 이는 생략된 곱셈기호를 계산하는 다른 연산원칙을 따로 지정해주었음을 의미. 앞에서 한 주장과 일치된다.
- 수학 관련 프로그램 Maple 14 에서는 48/2(9+3) 을 입력하면48/(2*(9+3));print(`output redirected...`); # input placeholder2
이렇게 자동으로 2와 (9+3)를 ()로 묶어서 계산하게 된다. 이것은 위에서 언급한 MJ를 나눗셈보다 우선하여 연산을 수행한 것이다. Giac/Xcas 역시 48/2에서 (2)에만 괄호를 삽입해서 2가 나온다.Warning : using implicit multiplication for (2)(9+3)
- 2011년 4월 11일에는 2를 뒷받침하는 수학 교과서 내용과 강사의 설명 동영상을 모은 글이 올라왔고, 4월 13일에는 뉴욕 시립대 대수학 교재를 인용한 글이 올라왔다.
{{{#!folding [ 풀이 ]
=48÷(18+6)(분배법칙)
=48÷24
=2
}}}
- 2024년 정승제는 숫자와 문자사이의 곱셈에 관한 중1수학 교육과정에 따른 값이 보다 타당하다고 주장했다. 정승제의 48÷2(9+3)
- 실제로 중학교 수학 과정 문제집에서 [math(2x \div 3y)]를 간단히 나타내라 하면 [math({2x} \over {3y})]라고 답을 내지, [math({2xy} \over {3})]이라 쓰면 오답이라 한다.
3.2. 답은 288이다
48÷2와 (9+3) 사이에는 곱셈 기호가 생략되어 있을 뿐이다. 사칙연산에서 곱셈과 나눗셈은 왼쪽부터 계산한다. 그러므로 48÷2×(9+3)=288이다.
- 스탠다드 방식으로는 그대로 왼쪽에서 오른쪽으로 계산하는 것이 맞다. 이런 형태의 수식에서 2(9+3)을 먼저 계산해야 한다는 규칙은 어디에도 존재하지 않으며, 따라서 이런 경우에는 곱셈과 나눗셈은 왼쪽부터 계산한다는 규칙을 철저하게 따라야 한다. 이러한 규칙을 철저하게 지키는 게 고지식해보이고 2(9+3)을 먼저 계산하는 것이 합리적으로 보인다고 해서 그렇게 계산한다면, 모든 사람이 모호한 수식을 동일하게 해석하기 위해 만들어진 규칙의 존재 이유 자체를 부정하는 것이 된다.
- '답은 2이다'라는 측의 계산법은 곱셈이 생략되었다는 이유로 기존의 연산식에 없는 괄호를 추가하고, 곱셈과 나눗셈을 오른쪽부터 계산하는 오류를 범하므로 틀렸다. 9+3을 계산하고 나면 괄호가 없어지고 12이라는 숫자가 남는다는 주장으로, 달리 말하면 48÷2×(9+3)=48÷{2÷(9+3)}이 나온다는 것이다. 즉 답이 2라고 주장하는 쪽에게 48÷2×(9+3)=48÷{2×(9+3)} 라는, 곱셉기호가 표기만 되어있었다면 절대 저지르지 않았을 실수를 하는 거라고 말하는 것이다. 다만 2를 지지하는 쪽에서는 9+3을 계산한 후에도 앞의 2가 있는 이상 괄호가 없어지는 게 아니라고 주장하므로, 즉 계산 전까진 2(12) 인 상태라고 주장하므로 논파되었다고 볼 수는 없다.
- 위의 수식을 각종 계산 도구로 계산하면 288이 나온다.
- 이상엽Math은 수식 표기의 역사적 연원에 따라 MJ를 우선한 결과가 타당하다고 주장했다. 하지만 위 중학교 수학 나눗셈 표기도 설명하며, 어떤 것이 옳으면 다른 하나는 무조건 틀리게 되는 것은 아니라고 강조했다. 이상엽의 6÷2(1+2)
3.3. 수식 자체가 잘못되었다
이 식은 우선 수식 내부에서 /과 ÷는 대개 같이 사용하지 않으며, 곱셈기호를 생략하기 위해서는 대부분 ÷가 아닌 /를 사용한다는 사실을 간과했다. 다시 말해 곱셈기호를 생략할 때 사용하는 2차원 식인 분수를 /를 사용하여 1차원 식으로 표현한 것을 /을 ÷로 바꾸는 바람에 생기는 오류라고 할 수 있다.실제로 MS Office 엑셀[8] 또는 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의 곱이 구분되지 않기 때문이다. 수와 괄호 사이엔 곱셈 생략이 허용된다.[9] '상수만일 경우엔 생략을 하면 안 된다.'는 규칙이 있다는 의미보다는 일반적으로 할 필요가 없기에 하지 않는다는 뜻이 더 가까운 표현이다.
다른 수식을 예로 들자면, 1/2/4같은 경우가 있다. 1÷2÷4라면 0.125가 답이겠지만, 1/2/4라면 그것이 0.5/4인지 1/0.5인지가 애매하기 때문이란 것. 여기서도 위에서 언급한 MJ와 ×의 관계처럼, /가 ÷를 표기만 다르게 한 것인지, ÷보다 우선순위가 다른 새로운 연산인지 정해지지 않았다. 이러한 표기에서 비롯되는 해석의 모호성은 수식에서뿐만 아니라 언어에서도 나타난다. 이는 아버지가방에 들어가신다와 같은 맥락.
그러므로 애초에 문제에 오류가 있으니 하나로 정해지지 않은 답을 논하는 것 자체가 오류라는 것이 핵심이다. 그래서 최근 계산기에서 기호를 넣지 않고 괄호를 시작하거나 끝난 괄호 뒤에 기호를 안 넣고 숫자를 입력할 경우 자동으로 곱셈기호를 중간에 넣어주는 경우도 있다. 관례를 지키는 한편 오류도 피하는 것.
현재 수학계에서 주로 받아들이는 주장이다.
아래의 링크에 비슷한 사례가 있다.
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.
현대수학은 왼쪽에서 오른쪽으로 계산하는걸 원칙으로한다. 그러나 일부 책에서는 다르게 계산하는 방법으로 풀었는데 다음 개정판에서는 혼동을 방지하기 위해서 괄호를 넣을 것이다.
현대수학은 왼쪽에서 오른쪽으로 계산하는걸 원칙으로한다. 그러나 일부 책에서는 다르게 계산하는 방법으로 풀었는데 다음 개정판에서는 혼동을 방지하기 위해서 괄호를 넣을 것이다.
4. 결론
이 문제의 핵심은 '병렬 배치로 곱셈을 표현'(multiplication by juxtaposition, 한마디로 [math(a \times b)]를 [math(ab)]로 표기하는 것을 의미한다. 이하 MJ)하는 것의 애매모호함이다. 이 MJ는 계산을 간략히 표기하기 위한 일종의 관습이기도 한데, 이 것을 곱셈 연산 [math(\times)]의 또다른 표기로 보느냐, [math(\times)]와 연산 결과는 같으나 연산의 우선순위는 다른 별도의 연산으로 보느냐에 따라 계산 결과가 달라진다.사람들의 주장도 결국 크게 나누면 'MJ와 곱셈/나눗셈은 동등한 우선순위를 지닌다.', 혹은 'MJ는 곱셈/나눗셈에 우선한다.' 가운데 한쪽으로 귀결되며, 상세한 관련 예시들을 들어 주장하고 있을 뿐이다. 순위가 동등하면 원제의 결과가 288, MJ 우선이면 2이다. 이 문제의 핵심은 연산자 우선 순위에 관련된 형식 문법(Formal grammar)을 어떻게 정의하느냐에 있다. 수학 수식 역시 형식 언어의 일부로 간주될 수 있는데, 이 때 이 수식을 의미론적으로 어떤 의미를 가지는 형태로 변환해야 하느냐에 대한 논쟁인 것이다.
쉽게 말해 기준이 될 수 있는 문법이 없기 때문에 발생하는 단순 표기법의 문제로, 문제 자체가 잘못되었다. 학계에 통용되는 표준 문법이 있다면 이런 문제 자체가 있을 이유가 없지만, 수학은 학계 전반에서 통용되는 표준 문법이 현 시점에는 존재하지 않는다. 대부분의 수학적인 표현법 자체가 '파급력 있는 논문'에서 '임의로 정의'된 이후 사람들이 그 논문을 참조하면서 퍼져 나가는 것이 일반적이다.
표준 문법이 없는 이유는 '표준이 있어야 해석이 되는 식을 만들 수밖에 없는 경우'가 없기 때문이다. 당장 이 문서 제목과 같은 식은 그 식이 나오는 문제의 해결과정에 맞게 둘로 나눠 쓰면 그만이고 그것이 어떤 불편을 초래하지도 않는다. 따라서 필요성이 없는 표준문법이라는 것을 여러 사람이 수고를 들여 만들 가능성도 없는 것이다. 실제 전공 서적들에서는 모호하게 표기하지 않거나, 서장이나 관련 챕터에서 이후에 사용할 표기법을 적어놓고 넘어가므로 이런 문제는 발생하지 않는다.
또한 MJ 문제는 중위표기법에서만 나타난다. 전위/후위식으로는 순서 문제가 발생하지 않는다. 다음은 역폴란드 표기법 으로 쓴 것인데 식이 달라져서 중의적 해석이 불가능하다.
- 48, 2, ÷, 9, 3, +, × = 288
- 48, 2, 9, 3, +, ×, ÷ = 2
유사한 문제로는 프로그래밍 언어의 수식을 어떻게 해석하느냐의 문제가 있는데, 이 동네에서는 형식 언어론에 의해 언어 자체적으로 엄밀하게 정의한 문법에 기반하여 해석한 뒤, 이를 모호함이 없는 형태의 수식[10]으로 변환하여 처리하므로 이런 문제는 발생하지 않는다. (위에서 언급된 수학 프로그램/계산기는 자체적으로 정의한 문법을 토대로 수식 해석기를 만들어 쓰는데, 이 문법이 서로 다른 것 뿐이다.)
실제로 공학용 계산기 간에도 계산 순서가 다르게 설정되어 있기 때문에, 서로 다른 답을 보여준다. #
5. 자주 언급되는 잘못된 근거들
위의 결론 문단에서 말했던 것처럼 이 문제는 정답이 없다는 것으로 이미 결론이 났다. 2(9+3)을 어떻게 해석하느냐에 대한 명확한 규칙이 제정되기 전까지는 둘 중 하나의 답이 맞고 나머지는 틀렸다는 주장은 무조건 틀린 말이라고 보아도 된다.아래는 특정 답이 맞다고 주장하면서 흔히 드는 잘못된 근거들의 예시다.
5.1. abc÷abc = 1
[math(abc \div abc=1)]
[math(abc \div abc=b^{2}c^{2})]
위와 같은 식을 가져오면서, 아래와 같이 해석하는 사람은 아무도 없으니까 나눗셈 기호 뒤의 전체를 제수로 보는 것이 맞다는 예시를 들기도 한다. 하지만 위의 식은 문자를 사용해서 나눗셈을 나타낸 경우에 해당하며, 이와 같은 수식은 현대 수학에서는 전혀 모호하지 않다.[math(abc \div abc=b^{2}c^{2})]
원래 문제에서 쟁점이 되는 것은 숫자를 사용한 나눗셈에서의 모호함이기 때문에 문자가 아닌 숫자를 사용한 상황을 근거로 제시해야 한다. 위의 주장을 숫자로 표현한다면 아래와 같이 주장하는 꼴이 되므로, 이는 올바른 근거로 사용할 수 없다.
[math(123 \div 123=(1*2*3) \div (1*2*3)=6 \div 6=1)]
[math(\therefore 48 \div 2(9+3))]
[math(=48 \div 2(12))]
[math(=48 \div (2*12))]
[math(\therefore 48 \div 2(9+3))]
[math(=48 \div 2(12))]
[math(=48 \div (2*12))]
5.2. 분배법칙 적용
[math(48 \div 2(9+3) = 48 \div (18+6) = 48 \div 24 = 2)]
이는 분배법칙이라는 수학적인 표현을 이용해서 현재 쟁점이 되고 있는 부분을 슬쩍 넘어간 것에 불과하다. 실제로 위의 첫 번째 식과 두 번째 식 사이의 등호가 성립하는지 아닌지에 대해서 이야기를 하고 있는데, 분배법칙이라는 수학적 표현을 사용함으로써 마치 이렇게 푸는 것이 옳다는 것 처럼 느껴지도록 한 것이다.아래와 같이 분배법칙을 사용해서 마치 288이라는 답이 맞는 것 처럼 표현할 수도 있다.
[math(48 \div 2(9+3) = (48 \div 2 * 9 + 48 \div 2 * 3) = (216 + 72) = 288)]
5.3. 문자로 된 수식을 먼저 제시
[math(a \div b(c+d))]
[math(a=48, b=2, c=9, d=3)]
이는 기존 문제에 없던 조건을 마음대로 더한 것에 해당한다. 문자간의 MJ에는 모호함이 없기 때문에 위와 같은 상황에서는 답은 명백하게 한 가지로 나오지만, 기존 수식이었던 48÷2(9+3)가 원래 변수로 나타낸 식에 값을 대입해서 나왔다는 말이 없기 때문에 이는 근거로 사용할 수 없다.[math(a=48, b=2, c=9, d=3)]
6. 전파 및 유사 사례
- MJ 연산 우선순위의 부재와 관련됨.
- 네이버 캐스트에서 2009년에 사칙연산에 대한 글을 다룬 적이 있는데, 2년이 지나서 이 문제가 떡밥이 되자 그 글에 내용을 추가해서 수식의 잘못을 탓하여 이 논쟁에 젓가락을 얹었다. #
- 2011년도 4월 경에 원제와 관련되어 마법의 문장을 쓴 채로 아주 많은 기사가 양산되었다.
- 6÷2(1+2)=9 vs 1
옆나라 일본과 대만의 인터넷에서도 위 문제로 시끄러웠던 모양이다. #한국에선 2012년 6월 21일에 다시 검색어로 떴다. 2015년에도 재조명을 받았고 2018년도 페이스북에서 다시 떠들썩했다. 몇년마다 한번씩 도는 떡밥. - 2019년에 살짝 변형되어 4÷2(2+2) = ? 라는 문제로 바뀌어 새로 등장하였다. 숫자만 다를 뿐 본질은 같다.
- 2023년에 방영한 미운 우리 새끼 349회에서 8÷4(5-1)이라는 문제로 언급되었는데 여기서 수학 강사인 정승제는 4(5-1)를 한 항으로 간주하여 계산하는 방식을 사용하였고 그 결과 1/2라는 답이 나왔다.
- 연산의 우선순위가 명확함
- 2013년 2월 17일 해외에서 7+7÷7+7×7-7=50 or 56이라는 비슷한 것이 나왔지만, 이는 헷갈리기 쉬울 뿐 '곱셈과 나눗셈을 덧셈과 뺄셈보다 우선시한다'는 사칙연산 규칙을 명확히 적용할 수 있기에 논란은 그리 크지 않다.[11]
- SBS 《작렬 정신통일》에서 가수 채연이 두뇌를 풀가동해서 2+2×2를 8로 골랐다가 굴욕을 맛본 적이 있다. 정답은 다 알겠지만 6.
- 이를 비웃는 한 문제도 있다. 예를 들면 230-220×0.5의 해답은 바로 5!이다.
- 과거 워크래프트 3의 홈페이지 게시판에서는 111+1×2=224는 맞을까? 라는 문제로 113이 맞다, 224가 맞다로 논쟁을 벌인 적이 있다. 이것의 유래는 111+1×2=224에서 확인할 수 있다. 물론 이건 사칙연산의 규칙만 알면 풀 수 있다. 시사하는 바도 다르고.
7. 관련 문서
[1] 조용한 갤러리 축에 들어갔던 디시인사이드 수학 갤러리는 당시에 이 떡밥으로 하루에 100페이지가 넘는 글들이 난립하였다.[2] 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.)[3] 위 출처글의 경우, 6÷2×3의 경우와 a÷bc(단, a=6,b=2,c=3)의 경우 왜 답을 다르게 인식하느냐 하는 예시를 문제로 제시한다. 전자의 경우 순서대로 계산하여 답이 9라고 대답하지만, 후자의 경우 bc가 같이 분모가 되는 것으로 보아 1이라고 대답한다는 것.[4] 특히나 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 시리즈와 마찬가지로 자동으로 괄호를 넣어준다.[5] 다만 Mathway 라는 엔진은 예외. 이 엔진은 2(9+3)을 전부 분모로 인식하고 2를 출력한다. 위에서 언급한 것과 같이 이 엔진에도 2*(9+3)으로 입력하면 288을 출력.[6] 미국 대학 칼큘러스 시간에 일반적으로 가장 많이 쓰이는 그래핑 계산기[7] 카시오에서 제공하는 앱인 ClassPad에서 288을 내놓는다. ClassPad의 실물 계산기 버전인 fx-CP400, 추가로 일반 프로그램용 계산기인 fx-5800P가 288을 내놓는다.[8] 사용자가 입력한 수식에 문제가 있습니다. 다음과 같은 수식으로 변경하시겠습니까? =48/2*(9+3) 라고 묻는 창이 뜬다.[9] 정확히는 아예 생략을 해버리는게 아니라 3·4 식으로 점을 찍어 간략하게 표현한다.[10] AST(Abstract syntax tree : 추상 구문 트리)라고 한다.[11] 7÷7과 7×7을 먼저 처리하면 7+1+49-7이 된다. 즉, 답은 50이다.