- 세상의 모든 계산기 계산기 이야기
[공학용 계산기] 한줄입력시 지수(^) 계산 우선순위. 2^2^3 = ?
1. 문제
Q : 2 ^ 2 ^ 3 을 공학용 계산기에 한 줄 입력(Linear IO) 했을 때 그 결과는?
답_a : (2^2)^3 = 4^3 = 2^6 = 64
답_b : 2^(2^(3)) = 2^8 = 256
2. 수학적 정답
어떻게 계산되는게 옳은 걸까요? 일단 수학적으로는 'b'가 옳습니다.
'예전에 이슈가 됐었던 48÷2(9+3) = ? 때와 달리 2^2^3 을 수학적으로 표현했을 때 가 될 것이 분명하기(=오해의 소지가 없기) 때문입니다. 그리고 에 대한 수학적 답은 256 뿐입니다.
참고
- https://en.wikipedia.org/wiki/Order_of_operations
- https://en.wikipedia.org/wiki/Operator_associativity
3. 계산기의 결과
그렇다면 계산기를 통해서도 같은 결과를 얻을 수 있을까요? 일단 한줄입력을 직접 해 보고 계산 결과를 확인해 보겠습니다. (대상 계산기는 처음 문제처럼 지수를 한줄로 표기할 수 있는 계산기로 한정하겠습니다.)
결과 a (64) : fx-9860G, 윈도우10 기본 공학용 계산기
결과 b (256) : TI-nspire, TI-89T, 구글 Web, 구글 스프레드시트, Wolfram Alpha, HP Prime
[TI-nspire]의 guidebook에 보면 아래의 내용이 나옵니다.
EOS™ (Equation Operating System) Hierarchy
Exponentiation
Exponentiation (^) and element-by-element exponentiation (.^) are evaluated from right to left. For example, the expression 2^3^2 is evaluated the same as 2^(3^2) to produce 512.
This is different from (2^3)^2, which is 64.
그리고 [fx-570 EX] 와 [fx-570 ES] 계산기에서는
^를 '한줄입력'방식으로 입력하면 하나의 문자인 것처럼 '^(' 가 입력됩니다. 여는 괄호 '('만 따로 지울 수가 없습니다. 따라서 2^2^3 꼴로 입력해볼 수가 없습니다.
개인적인 결론
1. 계산기는 도구일 뿐이므로, 이 문제도 계산기를 만든 사람과 사용자가 약속하기 나름이다.
2. 하지만 둘 중 하나를 선택할 수 있는 문제라면, 수학적 표기와 일치하는 순서인 역순(=오른쪽부터)으로 처리하는 것이 바람직하며, 반대의 경우라면 왜 그런 선택을 해야 했는지에 대한 설명이 있어야 한다.
3. 한줄 입력의 경우 오해가 생기지 않도록 '자동으로 괄호가 생기도록 하는 방식'은 직관적이며, 효율적이다.
참고 :
https://en.wikipedia.org/wiki/Caret
TI-NspireCAS_ReferenceGuide_EN (설명서)
댓글 3
-
-
-
곱하기기호와 지수기호의 우선순위
2×3^4 이라는 수식이 놓여 있습니다.
이 식을 ⓐ 라고 보아야 할까요? 아니면 ⓑ 으로 보아야 할까요? 이도 저도 아니라면 ⓒ "2, 3, 4 사이에 괄호가 없으니 잘못된 수식"이라고 말해야 할까요?
설문조사를 해 본 것은 아니지만 수학 또는 공학을 아는 대부분의 사람은 ⓐ 를 선택할 것입니다. 그 말은 괄호 없이 × 와 ^ 기호가 양쪽에 있을 때, 우선순위는 ^ 에 있다는 것을 의미하고, 괄호를 이용해 표현하면 (2×(3^4)) 가 되는 것입니다.
-
-
-
2^2^3 Linear 입력 결과
CASIO fx-570MS, 모닝글로리 ECS-101은 64 나옵니다.
CASIO fx-570ES PLUS 2nd Edition은 본문에 나와 있듯 자동 괄호로 256 나옵니다.
-
프로그래밍 언어에 따른 차이
http://rosettacode.org/wiki/Exponentiation_order