2011. 11. 11. 10:41

이거 몇 년 전부터 다시 정리해야겠다 생각하고 있었는데 이제야 업데이트하네요.

 

 

 

1. 문제의 시작

 

여기는 2011년 11월 11일에 쓴 글입니다.

 

 

페이스북 검색에서 6/2(1+2) 하면 나오는 결과....

 

 

 

얼마 전 페이스북을 뜨겁게 달군 이슈가 6/2(1+2)입니다.

저도 물론 한참을

 

(6/2)* (1+2)로 봐야 하는 건가?

6/(2*(1+2))로 봐야 하는 건가?

헷갈렸습니다.

 

프로그래머가 사칙연산 순서가 헷갈리다늬!

 

결론적으로 1이 맞습니다.

 

 

 

2-1. 사칙연산의 우선순위

 

'PEMDAS'로 부르는 사칙연산의 우선순위는 아래와 같습니다.

 

1. 괄호의 우선순위는 괄호(()), 중괄호({}), 대괄호([]) 순이다.

2. 제곱(x²)

3. 곱셈(*)과 나눗셈(/)

4. 덧셈(-)과 뺄셈(-)

 

초등학교 때 배운 내용이니 다들 아시겠죠 ㅎㅎㅎ

문제는 곱셈이 생략된 경우입니다.

 

 

 

2-2. 곱셈이 생략된 경우

 

우리가 학교 다닐 때 맨날 들은 공식이 있죠.

2πr = 원주

 

이런 식으로 곱셈이 생략된 경우는 괄호도 같이 생략되었다고 보는 게 맞습니다.

그러니 실제로는

(2 *π * r)

가 맞습니다.

(2020.03.02 추가 - 이러한 공식은 이 공식을 만든 사람이 어떤 의도로 만들었는 알 필요 없이 누가 계산해도 같은 값이 나와야 합니다.

2πr이 원주 구하는 공식인 것을 알고 있든 아니든 상관없이 항상 같은 값이 나와야 함)

 

 

그러니 다시 문제로 돌아가면

6/(2(1+2))

가 맞다는 걸 알 수가 있죠.

 

 

 

2-3. 계산기에 식을 잘 넣자.

 

일반적인 계산기들은

(6/2)*(1+2)

로 계산하지만 이건 잘못된 식입니다.

 

 

구글도 잘못된 식을 만들어줌

 

 

만약

2/2πr

인 경우라면?

 

π를 3.14

r을 3

라고 놓고 계산해 봅시다.

 

일반 계산기는

2 / 2 * 3.14 * 3 = 9.42

라는 값이 나옵니다.

 

 

 

하지만 2를 반지름이 3인 원의 둘레를 나누면 9.42가 나올 리가 없다는 건 계산을 하지 않아도 알 수 있습니다.

하지만 계산을 해봅시다.

2 / (2 * 3.14 * 3) = 2 / 1.8 = 0.106157113

 

 

 

 

이 방법으로 계산을 하면

6/2(1+2) = 6/(2*(1*2)) = 6/(2*3) = 6/6 = 1

이렇게 됩니다.

(2020.03.02 추가 - 이제 원하는 대로 값이 나왔네요.)

 

이것과 비슷한 문제로 예전에 인터넷을 달군

48/2(9+3)

의 경우도 288이 아닌

48/(2*(9+3)) = 48/(2*12) = 48/24 =2

이렇게 됩니다.

 

변수가 있지 않은 경우 사칙연산법이 다르지 않다면 일반 계산기 값은 틀렸다고 볼 수 있습니다.

곱셈이 생략되는 경우 괄호도 같이 생략된다는 걸 생각해야 할 것 같습니다.

 

이런 이유로 공학용 계산기는 1이 나옵니다.

 

 

 

곱하기가 생략된 경우 괄호도 생략됐다고 판단하는 공학용 계산기

(이것도 기종 나름 인듯-_-;)

 

 

 

2. 2014.02.07 추가

 

문제 자체가 잘못된 거라 풀의 자체가 의미가 없다고 하는데...

여기엔 저도 어느 정도 동의합니다.

 

혼돈이 올 수 있는 식은 잘못된 것이 맞죠.

그래서 그런지 이제는 3파전입니다. ('문제가 틀렸다'가 추가 됨;;)

 

 

근데 전 괄호는 문자로 봐야 한다는 입장이라 식이 틀렸다고 보는 것도 잘못된 거 같은데 말이죠 ㅎㅎㅎㅎ

그래서 '1'이 맞는다고 생각합니다.

 

만약 괄호를 문자로 보지 않으면 문자와 숫자가 뒤섞여 있을 때 곱셈이 생략 된다면(이 글에서 예를 든 '2πr'처럼 ) 다른 값이 나올 수 있기 때문입니다. 

 

저야 프로그래머 입장이니 프로그래머 입장에서 이야기 하자면 컴퓨터에서는 저런 식이 넘어온다면 돌려보냅니다.

컴퓨터에서 사용하는 식은 일상적으로 우리가 생략할 수 있는 것들조차 생략하지 못하게 되어 있으니까요 ㅎㅎㅎ

 

 

 

3. 2020.03.02 추가

 

몇 년 전부터 이거 정리 한 번 해야지.... 하고 있었는데 까먹고 있다가 이제야 다시 정리합니다.

 

 

 

3-1. 심볼과 함께 사용할 때

 

심볼이 들어간 문제의 경우 심볼과 함께 생략된 곱셈을 먼저 계산하지 않으면 다른 값이 나오는 경우가 많습니다.

 

 

여러 콘텐츠를 확인한 결과

심볼을 예로 들어서 설명하는 콘텐츠인경우 '1'이 정답이라고 하고

숫자만 놓고 'PEMDAS'로 계산하는 사람은 '9'가 정답이라고 합니다.

('PEMDAS'의 계산 순서는 괄호 > 제곱 > 곱하기, 나누기 > 더하기, 빼기)

 

 

그렇다면 심볼을 예를 들어 설명해 봅시다.

 

예를 들면 원주의 반이 필요하다고 생각하고 계산해 봅시다.

2/2πr = 2 / (2 * π * r)

이렇게 되죠.

 

만약 이걸 

2 / 2 * π * r

이렇게 계산하면 다른 값이 됩니다.

 

그럼 식을 원주의 6분의 1이 필요하다고 생각해봅시다.

6/2πr = 6 / (2 * π * r )

6/2πr = 6 / (2 * r *  π)

6/2πr ≠ 6 / 2 * π * r

6/2πr ≠ 6 / 2 * r * π

 

 

좀 더 보기 쉽게 

지름을 d = 2r 로 놓고 식을 쓰면

6/dπ = 6 / (d * π) = 6 / (2 * r *  π)

6/dπ ≠ 6 / d * π = 6 / 2 * r * π

 

 

 

3-2. 문제에 심볼을 적용해보자

 

이것을 위 문제에 적용하자면

x=2, y=1+2 일 때

z = 6/x(y)

z = 6/xy

 

 

'PEMDAS'를 주장하는 사람은 여기서 괄호를 생략이 아니라 우선순위에 의해 계산이 끝난 괄호는 제거된다고 표현합니다.

즉 y는 이미 계산이 끝났기 때문에 괄호가 제거됩니다.

 

 

그럼 x = d(원주), y = π(원주율) 로 넣는다면?????

6/dπ = 6 / (d * π)

6/dπ ≠ 6 / d * π

(이건 위에서 여러 번 증명했으니 넘어갑니다.)

 

 

그래서 1이 맞다고 한겁니다.

 

어찌 됐건 심볼로 계산할 때와 숫자로 계산했을 때 규칙이 달라지는 것이 아니라면

곱셈이 생략되었을 때는 괄호가 생략됐다고 봐야 항상 같은 값이 나옵니다.

 

 

3-3. 심볼 사용시 괄호를 명시해야 한다.

 

여기서 심볼사용시 괄호를 생략하는 건 묵시적으로 허용된 것이기 때문에 원래는 생략하면 안 된다는 것입니다.

이 묵시적 허용은 계속 허용되었으나 모호성 없애기 위해 1917년에  'Mathematical Gazette'에서 대에 명시적으로 사용하도록 하였다고 합니다.

근데 저는 이게 권고 알고 있었는데 필수인 건...가?

 

이게 필수라면 심볼이 들어간 식의 경우 괄호를 명시적으로 사용해야 하고 

이 문제의 경우 묵시적 괄호 생략이 허용하지 않으니 순서대로 '6 / 2 * (1 + 2)'가 되어야 하고 위의 식은 맞는 식이고 9가 나와야 합니다.

 

4. 2021.12.24 추가

Korea Science - (2016)

A Study on the mathematical notation of expression in terms of skipping the parenthesis
괄호 생략 관점에서 식의 표기에 관한 고찰

 

내용요약 - 

본 연구는 오늘날 사용되는 식의 표기를 괄호 생략의 관점에서 고찰하였다. 먼저 연산 기호 생략 규칙과 관련한 초·중등 교과 내용을 검토해본 결과, ‘48÷2(9+3)의 계산 결과는 얼마인가?’라는 물음에 답할 명시적 근거를 찾기 어려웠다.

 

서론에서 논란이 된 산술식의 해석에 대한 혼란 예방을 위해 곱셈이 생략된 경우는 함수의 이미지로서 간주되어야 한다는 원칙을 명시할 것을 제안한다.

 

 

 

마무리

 

요약하자면

 

괄호 생략이 허용되는 경우는 1이 맞는 답이고

괄호 생략이 허용되지 않는 경우는 9가 맞는 답입니다.

 

이거에 대해서는 또다시 구글링을 해야 할 것 같습니다.

자료가 영어인데 영어가 짧아서 ㅜㅡ

 

 

 

지금 보니 곱하기를 더하기로 써논 게 몇 개 있었네요 ㅎㄷㄷ

댓글에도 그대로 붙여서 더하기로 되어있네;;;;