[공학용 계산기] 한줄입력시 지수(^) 계산 우선순위. 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
ㄴ Serial exponentiation : If exponentiation is indicated by stacked symbols using superscript notation, the usual rule is to work from the top down: - https://en.wikipedia.org/wiki/Operator_associativity
ㄴ A detailed example :^
is taken to be a right-associative exponentiation operator.
3. 계산기의 결과
그렇다면 계산기를 통해서도 같은 결과를 얻을 수 있을까요? 일단 한줄입력을 직접 해 보고 계산 결과를 확인해 보겠습니다.
(대상 계산기는 처음 문제처럼 지수를 한줄로(Line IO) 표기할 수 있는 계산기로 한정하겠습니다.)
결과 a (64) : fx-9860G, 윈도우10 기본 공학용 계산기, fx-570MS, 모닝글로리 ECS-101 // 제보 감사합니다.
결과 b (256) : 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 (설명서)
댓글8
-
세상의모든계산기
곱하기기호와 지수기호의 우선순위
2×3^4 이라는 수식이 놓여 있습니다.
이 식을 ⓐ 라고 보아야 할까요? 아니면 ⓑ 으로 보아야 할까요? 이도 저도 아니라면 ⓒ "2, 3, 4 사이에 괄호가 없으니 잘못된 수식"이라고 말해야 할까요?
설문조사를 해 본 것은 아니지만 수학 또는 공학을 아는 대부분의 사람은 ⓐ 를 선택할 것입니다. 그 말은 괄호 없이 × 와 ^ 기호가 양쪽에 있을 때, 우선순위는 ^ 에 있다는 것을 의미하고, 괄호를 이용해 표현하면 (2×(3^4)) 가 되는 것입니다.
-
세상의모든계산기
$7^{3^{2}} ÷ 7^{2^{3}}$ = ?
울프람 알파
https://www.wolframalpha.com/input?i=7%5E3%5E2%C3%B77%5E2%5E3
-
-
세상의모든계산기
ChatGPT-4o
문제는 다음과 같습니다:
\[
\frac{7^{3^2}}{7^{2^3}}
\]우선 지수를 계산합니다.
1. \(3^2 = 9\)이므로, \(7^{3^2} = 7^9\).
2. \(2^3 = 8\)이므로, \(7^{2^3} = 7^8\).이제 식은 다음과 같이 변합니다.
\[
\frac{7^9}{7^8}
\]같은 밑을 가진 거듭제곱의 나눗셈에서는 지수를 빼줍니다:
\[
7^{9-8} = 7^1 = 7
\]따라서, 최종 답은 7입니다.
지수의 지수가 있는 꼴, 즉 \((a^{b^c})\)와 같은 표현에서 계산의 우선순위는 지수의 지수를 먼저 계산하는 것이 원칙입니다. 이것을 오른쪽에서 왼쪽으로 계산한다고 표현하기도 합니다. 수학적으로 이는 상위 지수부터 차례대로 계산하는 방식으로 진행됩니다.
이를 근거로 설명하면:
1. 지수법칙과 괄호의 생략: 지수법칙에 따르면, \(a^{(b^c)}\)와 \(a^{b^c}\)는 동일하게 해석됩니다. 괄호를 생략한 표현이라도 암묵적으로 지수의 지수를 먼저 계산하는 것으로 간주됩니다.
예를 들어, \(a^{b^c}\)에서 먼저 \(b^c\)를 계산한 후, 이를 다시 \(a\)의 지수로 사용하는 것이 일반적인 해석입니다.2. 우선순위 규칙: 수학에서 계산 우선순위 규칙은 다음과 같습니다:
- 괄호
- 지수
- 곱셈 및 나눗셈
- 덧셈 및 뺄셈이 중 지수의 우선순위는 괄호보다 아래지만, 곱셈/나눗셈보다는 우선이므로 지수의 지수는 먼저 계산됩니다.
3. 예시: \( 2^{3^2} \)를 계산할 때, 먼저 \(3^2 = 9\)를 계산한 후 \(2^9\)을 구하는 것이 맞습니다. \( (2^3)^2 \)처럼 괄호가 다르게 있다면, 그에 맞는 순서를 따르겠지만, 일반적으로는 지수의 지수를 먼저 계산하는 방식이 사용됩니다.
따라서 지수의 지수를 먼저 계산하는 것이 수학적 관례이자 지수법칙에 따른 원칙입니다.
-
세상의모든계산기
Claude 3.5 Sonnet
Let's approach this step-by-step:
1) First, let's understand what 7^3^2 means:
This is interpreted as 7^(3^2), not (7^3)^2
So, 7^3^2 = 7^(3^2) = 7^92) Similarly, 7^2^3 is interpreted as 7^(2^3):
7^2^3 = 7^(2^3) = 7^83) Now our expression looks like this:
7^9 ÷ 7^84) When dividing exponential expressions with the same base, we subtract the exponents:
7^9 ÷ 7^8 = 7^(9-8) = 7^1 = 7Therefore, 7^3^2 ÷ 7^2^3 = 7.
지수의 지수가 있는 꼴에서 계산 우선순위에 대해 한글로 설명드리겠습니다.
1. 계산 우선순위:
a^b^c 형태의 식에서는 오른쪽에서 왼쪽으로 계산합니다. 즉, (a^(b^c))로 해석됩니다.2. 근거:
1) 수학적 관례: 이는 수학계에서 널리 받아들여지는 관례입니다. 대부분의 수학 교과서와 참고 자료에서 이 규칙을 따릅니다.2) 의미의 일관성: 이 규칙을 따르면 수식의 의미가 일관되게 유지됩니다. 예를 들어, 2^3^4는 2^(3^4)로 해석되며, 이는 2^81입니다. 만약 (2^3)^4로 해석한다면 결과는 4096이 되어 큰 차이가 생깁니다.
3) 표기법의 간결성: 이 규칙을 통해 복잡한 괄호 없이도 의미를 명확하게 전달할 수 있습니다. a^(b^c)를 간단히 a^b^c로 쓸 수 있게 됩니다.
4) 함수적 해석: 지수를 함수로 볼 때, f(x) = a^x라면, a^b^c는 f(f(c))로 해석될 수 있습니다. 이는 함수의 합성 개념과 일치합니다.
3. 주의사항:
- 이 규칙은 지수 연산에만 적용됩니다. 다른 연산자들과 혼합될 경우 일반적인 연산 우선순위 규칙을 따릅니다.
- 명확성이 필요한 경우, 괄호를 사용하여 의도를 명확히 표현하는 것이 좋습니다.이러한 규칙은 수학적 표현의 일관성과 효율성을 위해 중요합니다. 복잡한 수식을 다룰 때 이 규칙을 이해하고 적용하면 계산 오류를 줄이고 정확한 결과를 얻을 수 있습니다.
세상의모든계산기 님의 최근 댓글
각 결과값의 비교 2025 10.21 삼각함수로 구성된 방정식을 계산기가 소화하지 못하는 건가요? 원래 계산기 solve 함수가 삼각함수와 궁합이 나쁘지만, 이 경우의 삼각함수는 함수 내부에 변수가 들어가지 않기 때문에 함수라서 처리가 어려운 것이 아닙니다. 삼각함수 내부에 변수가 아닌 상수가 들어갔기 때문에 결과값도 상수일 뿐인데, numeric 한 상수로 처리하지 않고 symbolic 한 상수로 처리해 문제가 발생한 듯 합니다. 2025 10.21 답이 잘 나오지 않는 이유? solve는 답을 찾기 위해 내부적으로 여러 방식을 사용할 수 있습니다. 가장 간단한 방식은 수치적 방법 numerical method 를 이용하는 것이구요. - 질문자님께서 하신 것처럼 숫자를 대입하거나 - 초기값을 입력하거나 - 계수 등으로 numerical 한 숫자가 들어가거나, 즉 소숫점이 직접 사용되거나 할 때 자동으로 numerical method 로 전환되어 계산됩니다. 그리고 결과에 ⚠️ 를 표시합니다. 그 의미는 적당한 수준(매우 작은 오차 수준)에서 답을 찾았으나, 재수가 없으면 오답일 수 있다는 경고입니다. 따라서 앞으로는 답이 안나올 때는 초기값을 넣는다거나 하는 방식으로 solve를 이용하시면 됩니다. 그럼 처음에 왜 false 가 나왔나를 생각해 보면 두가지 가능성이 있는데 ⓐ numerical method 가 아니라 exact 값을 구하려고 했는데 복잡해서 못구했다. ⓑ numerical method 를 썻지만, 검증해보니 안맞아서 false 로 처리했다. 그런데 ⓑ는 아닌 것 같습니다. numerical method 를 사용하면 사소한 오류가 있더라도 무시하고 답을 내놓잖아요? 그럼 ⓐ 가 맞다는 말인데, 지금까지 제가 아는 바로는 입력한 수식에 소숫점이 들어가면 자동으로 approx()처리를 한다고 알고 있었고, 이 solve() 에 방정식 들어가기 전에 (approx) 전처리가 된 것이 들어가니 numerical method로 처리될 줄 알았는데, 아무리 봐도 그게 아닌 것 같습니다. 2025 10.21 4. 마지막으로 연립방정식 전문함수인 linsolve() 를 이용해도 답이 나옵니다. 결과값은 {73.049507058478,23.747548955926} 입니다. 이번엔 {true, true} 가 나왔습니다. 2025 10.21 3. 본문에서 cos, sin 을 풀어서 decimal 형식으로 넣은 것처럼 처리해도 답이 도출됩니다. 개별적으로 입력하지 않더라도, 연립방정식 수식 전체를 approx() 로 씌우면 처리됩니다. 답은 나오지만 이 경우에도 {true, true} 는 나오지 않았습니다. 그런데, 원래의 연립방정식에 검증하면 {true, false} 이지만, approx() 결과값에 검증하면 {false, true} 로 나오는군요. 2025 10.21