본문 바로가기

인터넷과 유틸/일반정보알리미

사칙연산

산수의 기본이 되는 덧셈, 뺄셈곱셈나눗셈의 4가지 연산을 일컫는다.뺄셈과 나눗셈을 빼고 그 자리에 지수와 괄호를 넣기도 한다. 뺄셈은 음수의 덧셈, 나눗셈은 음수지수가 포함된 곱셈이기 때문( $ a - b = a + (-b) $ , $ a \div b = {a \over b} = ab^{-1} $ ). 벡터나 텐서 등에서는 곱셈이 여러 개다(내적곱(·), 외적곱(×), 텐서곱(⊗), 쐐기곱(∧) 등). 논리 연산은 논리곱(AND; ∧), 배타적 논리곱(NAND;↑) 등이 있다.


사칙연산에는 몇 가지 법칙과 우선순위가 존재한다.

1. 계산은 왼쪽에서 오른쪽 순서대로 한다.

2. 만약 지수가 있다면 지수를 우선으로 계산한다. 괄호보다 먼저!!(단 지수 연산이 곤란하다면[1] 무시할 수 있음)[2]

3. 만약 괄호가 있으면 괄호를 우선으로 계산한다.

4. 괄호가 없고 덧셈과 뺄셈, 곱셈과 나눗셈이 혼재할 경우, 왼쪽에서 오른쪽 순서대로 하되, 곱셈과 나눗셈을 덧셈과 뺄셈보다 먼저 계산한다.



예를 들어서 1+2*3의 답은, 7이 정답이다. 9가 아니다.


왜 곱셈과 나눗셈을 먼저 하냐면, 원래 규칙이 그렇기 때문이다.186|206|268|&leafId=383 # 왜 규칙을 이렇게 정했냐면 우리가 중위 표기법을 사용하기 때문이다.


중위 표기법이란, 수식을
1 + 2 * 3
이렇게 표기하는 것이다. 중위 표기법 말고도 전위 표기법과 후위 표기법이 있는데, 위의 수식을 전위 표기법으로 표현해 보면,
+ 1 * 2 3
으로 표기하고, 후위 표기법으로 표현하면,
1 2 3 * +
이렇게 표기한다.
즉, 전위 표기법과 후위 표기법은 연산의 우선순위를 수식의 순서에 따라 표현할 수 있다. 하지만 중위 표기법은 그것이 불가능하다. 오랫동안 중위 표기법을 써 와서 그래왔는지, 아니면 인간이 보기에 그런지는 몰라도[3] 중위표기법이 사람이 보기에 편하므로, 우선순위를 표현할 수 있는 전위와 후위 표기법 대신 중위 표기법을 사용하고 있다. 따라서 일단 곱셈과 나눗셈을 덧셈과 뺄셈보다 우선하게 해, 이러한 혼란을 방지하는 것이다.


그렇다고 해서 곱셈과 나눗셈을 덧셈과 뺄셈보다 우선하는 이유가 있느냐?
답은 없다. 역사적인 산물로(쓰다보니까) 사람들이 곱셈과 나눗셈을 우선한다라고 정의한것이다. 덧셈과 뺄셈을 우선해도 상관없다라고 정해졌다면 그렇게 지금까지 이어졌을것이다. 그렇다면 왜 곱셈과 나눗셈을 우선시하였는가 하면, 복잡한 다항식을 계산하는 경우, 괄호 사용에 있어서 곱셈과 나눗셈을 우선시 하는 것이 괄호 사용을 줄일 수 있었기 때문이다. 계산하기도 그게 더 편했기도 하고.


이 규칙은 프로그래밍 언어에도 그대로 적용이 된다. 다만 언어에 따라 다소의 차이점이 있기는 하다(주로 지수 표현, 무리수 및 허수 표현 등).


사칙연산과 괄호로 된 간단한 식을 모양만 좀 비틀어 혼돈의 카오스로 만든 사례로 48÷2(9+3)가 있다.


111+1x2=224항목 같은 경우에는 방송국에서 실수로 오답을 낸 경우
----
  • [1] 밑이 문자(π, e 등)가 포함된 단항식 또는 다항식이거나, 수 자체가 복잡한 형태(대표적으로 무리수)인 경우
  • [2] 이는 어찌 보면 당연하다. 이미 지수 형태인 숫자를 따로 쪼개지 않고 계산하는 것이 자연스러우며((11 - 3) × 8 = (11 - 3) × 2³ 이므로, 이 경우 괄호를 먼저 계산하면 틀린다) 또한 모든 복소수는 필연적으로 지수의 꼴로 바꿀 수 있기 때문에(제곱근, 로그 참조) 사실상 독보적인 우선순위.
  • [3] 의식의 흐름 문제로 1+2=3을 예를 들자면 1에 무엇을 할 것인가? 더한다. 무엇을? 2를 그러면 어떻게 되는가? 3이 된다. 즉 수식의 진행과정이 순차적으로 쉽게 확인이 가능하기 때문이다.