close_btn

  • ※ 사이트 내부 통합검색


  • ※ 카카오페이로 기부하기

  • ※ 사이트 내부 통합검색
세상의모든계산기2015.03.05 16:50

0. 두가지 물음 

이 문제는 두가지 물음이 결합되어 있습니다. 

첫번째 "주어진 수학식을  어떻게 해석할 것인가?" 라는 수학적인 물음

두번째 "수학적으로는 잘못 표기된 수학식을 계산기에 그대로 입력했을 때  계산기는 어떻게 동작할 것인가?" 라는 공학적인 물음

 

1. 수학적 물음 : 수식의 표기

본문의 수식은 "수학적으로 옳바르지 않은" = "정의되지 않은" 표기입니다.

그 이유는 수식에서 곱하기를 생략(Implied times sign)할 수 있는 경우는 "오해의 소지가 없는 경우"로 한정되기 때문입니다(출처 : ISO 80000-2). 그리고 곱하기를 생략하는 이유는 곱하기의 생략하면 수식이 간단하게 표현되어서 사람들이 수식을 이해하기 더 쉬워지기 때문입니다. 

즉, 곱하기 생략의 원칙은 수식 표기의 대원칙인 "이해하기 쉽게", "오해하지 않게" 적는 대원칙 아래 있는 개념이라고 볼 수 있습니다. 

그런데 이미 사람들 사이에는 "48/2(9+3)" 수식은 "48/2×(9+3)"와 "48/(2×(9+3))" 중 어떤 것이 맞지?"라는 혼란(오해)가 생겼습니다. 곱하기와 괄호를 빼먹지 않고 모두 표시했더라면 오해가 없었을 것인데, 빼먹고 적음으로써 오해가 생겼으니 "곱하기를 생략할 수 없는 경우"라고 볼 수 있고 그래서 수학적으로 옳바르지 않은 식이 됩니다.  

둘 중 어떤 것으로 해석하는 것이 맞느냐는 후순위로 생각할 문제입니다.

 

그렇다면 위에서 말한 "곱하기를 생략하더라도 오해의 소지가 없는 경우"에는 어떤 것이 해당될까요?

  • 숫자×문자 --- ⓐ
  • 문자×문자 --- ⓑ

위의 두가지 경우가 가장 대표적인 오해의 소지가 없는 경우에 해당합니다. 그래서 많은 사람들은 "문자×숫자", "문자×문자"에서만 곱하기 생략이 가능하다고도 말하기도 합니다. 하지만 그것은 '원칙에 따른 결과'를 분석한 것일 뿐이지, 원칙 자체로 볼 수는 없습니다.

혹자는 '숫자×여는괄호'에서 곱하기가 생략되는 것은 괄호를 문자로 보기 때문에, 즉 ⓐ에 해당하기 때문에 가능하다고 설명하기도 하는데, 그것은 사실과 다르다고 생각합니다. ⓐ와 ⓑ에서 말하는 "문자"란 "숫자와 곱할 수 있는 대상(operand)을 치환한 것"으로서 한정된 문자 집합(알파벳 a~z, 혹은 라틴어 α~ω 등)으로 보는 것이 합당합니다. operator 까지 '문자'로 확대해석할 이유는 없다는 생각이 듭니다.

만약 곱하기 생략이 가능했다면 괄호를 문자로 보기 때문이 아니고 원칙에 따라 "오해의 소지가 없는 경우"에 해당하기에 생략한 것 뿐입니다. 여기서 "오해의 소지가 없는 경우"를 확장해서 생각해 볼 수 있습니다.

  • 숫자×( 여는괄호 --- ⓒ
  • 숫자×√(숫자) --- ⓓ
  • 숫자×∫ --- ⓔ
  • 숫자×∑ --- ⓕ

루트기호 등도 "문자"에 해당해서 생략한 것일까요? ⓐ에 해당하지는 않지만 오해의 소지가 없기 때문에 생략한 것이라고 봐야 할까요?

 

문제의 식으로 넘어와서 생각해 보겠습니다.

'2×(9+3)' 대신 '2(9+3)'을 쓸 수 있다고 하면, '2(9+3)' 대신 '2(12)' 로도 쓸 수 있어야 합니다. 이 표시가 다른 사람들에게 오해없이 '2×12'로 읽힐 수 있다면 이것은 맞는 표현입니다. 그런데 만약에 답이 '24'인 수학 주관식 시험문제에, 수험생이 '2(12)'라고만 답안지를 작성하면 채점자가 맞다고 할까요? 틀렸다고 할까요?

만약 맞다고 해야한다면, 수학식 어디에서나 숫자간의 곱하기 대신 이런 표현을 써도 무방한 것일까요?

 

2. 공학적인 물음 : 계산기의 해석

수학적으로 문제가 없는 표기를 계산기로 입력하면 계산기는 당연히 (모든 사람들에게 공유되는) 수학적 약속대로 해석하여 결론을 보여주어야 합니다. 그래야 모든 사람들이 혼란 없이 계산기를 사용할 수 있습니다.  

그러면 문제처럼 표기상 오류인 식을 입력받았을 때, "계산기는 계산을 해야 할까요? 말아야 할까요?" 

 

선택 ⓐ 그 문구를 에러로 처리   ERROR

선택 ⓑ 곱하기가 생략된 경우로 처리 1  생략된 곱하기만 생략된 부위에 삽입  수정된 식 계산? 
48÷2×(9+3) = 288

선택 ⓒ 곱하기가 생략된 경우로 처리 2  일반 수학식처럼 해석해서 괄호까지 삽입하고 계산 
48÷(2
×(9+3)) = 2

※ 계산기 세계에서 ⓑ 와 ⓒ의 차이는 숫자(숫자)에서 뿐만 아니라, 문자(변수)를 이용한 계산식에서도 발생합니다.
아래 댓글 참조

 

위 문제에서는 세가지 중에 하나를 선택해야만 하고, 어떤 선택을 할 것인지 결정하는 것은 계산기 프로그램을 만드는 사람의 몫입니다.

약속된 바가 없기 때문에 어떻게 약속을 하건 상관이 없습니다. 어떻게 하는 것이 더 효율적일지, 합리적일지를 고려하여 일관성있게 처리할수만 만들면 되는 것이고, 사용자는 그러한 해석에 따라 계산기가 작동함을 인지하고 그렇게 잘 사용을 하면 그만인 것입니다. 

 

* 혼란을 줄이기 위해 제작자들이 모여 합의를 이끌어 내는 것이 더 바람직하다고 볼 수 있겠습니다.
* 한 회사 내에서도 모델별로 처리방식이 다른데, 하물며 회사들간의 합의를 바란다는 건... 

파일 첨부

여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )