피연산자의 충돌시 처리 (예: sign changer)
7+(-5) = ?
위 식을 일반 계산기로 계산할 때는
【7】【+】【5】【+/-】【=】 순서로 누르는 것이 맞습니다.
그리고 그 결과는 2가 나오죠.
질문)
그런데 계산기 입력에 익숙하지 못해
【7】【+】【+/-】【5】【=】 순서로 잘 못 눌렀다면
그 결과로 몇이 나올까요?
답)
(아직까지 확인된 바로는) 2 가지 경우가 있습니다.
- 1) 카시오 K타입의 경우 = 12
- 2) 그 외 계산기인 경우 = -2
이런 차이가 발생한 것은
operator 에게 필요한 oprerand가 바로 나오지 않고
다른 operator가 등장했기 때문인데요.
이러한 예외상황을 계산기가 어떻게 처리할 것인가에 대한 문제입니다.
위의 예에서는
【+】【+/-】 로 sign changer 앞에 피연산자(숫자)가 아닌 연산자 + 가 있습니다.
결과로 '-2' 가 나온 계산기는 + 연산자를 무시하고 그 앞의 숫자(7)까지 찾아가서
sign changer 기능을 적용을 한 것이구요.
결과로 '12'가 나온 계산기는 + 연산자를 무시하지 못하고,
연산자 사이에 빈 데이터가 있다고 가정하고 적용(=결과적으로 취소)
되었다고 보시면 될 것 같습니다.
* 제 추측에 의한 설명이니, 보다 정확히 알고 계신다면 댓글 남겨주시면 감사하겠습니다.
세상의모든계산기 님의 최근 댓글
낮에 TV에서 영화 '말모이' 해주더라구요. 그래서 한번 물어 봤습니다. 2025 10.10 마지막 발언이 마지막 힌트이자 문제의 핵심이군요. 처음 들은 달이 8월이었다면 (15일인지 17일인지 확신할 수 없어서) 마지막 대사를 할 수 없지만, 처음 들은 달이 7월이었다면 (선택지가 16일 하나라서 확신이 가능하므로) 마지막 대사를 할 수 있다. 대사를 했으니 7월이다. 이제 이해되었습니다. 지금 보니까 이해가 되는데, 당시에는 왜 이해가 안됐을까요? 세가지 전제 하에 문제를 풀면 A는 마지막 대화 2줄만으로 C의 생일을 알 수 없어야 정상인데, 무슨 이유에서인지 "그럼 나도 앎!"이라고 선언해 버립니다. 알게 된 이유를 대화 속에서 찾을 수는 없습니다. 이 편견에 사로잡혀 빠져나오지 못하고 다른 길로 계속 샜나봅니다. 2025 10.09 (장*훈)님 (+10,000원) 계좌 후원(2025/10/09) 감사 드립니다. 2025 10.09 원래 식이 풀어진 상태에서는 두번째 인수 v가 분모, 분자에 섞여 있어서 계산기가 처리하지 못하는 듯 합니다. 이 때는 위에서와 반대로 분모 부분만 다른 문자(w)로 치환한 다음 completesquare(,v^2) 처리를 하면 일부분은 묶이는 듯 합니다. 하지만 여기서 처음 모양으로 더 이상 진행되진 않네요. 2025 10.08 전체 식에서 일부분(분모, 루트 내부)만 적용할 수는 없습니다. 번거롭더라도 해당 부분만 따로 끄집어 내서 적용하셔야 합니다. https://allcalc.org/30694#comment_30704 2025 10.08