게임 수학 - 나눗셈

블록을 생각하며 나눗셈 계산을 진행해보자.
게임에서 블록을 가지고 계산하는 그래픽 연산이 많으므로 밑거름으로 배워야 한다.

8 / 2 = 4

+-+-+
|-+-|
|-+-|
+-+-+
  • 그림에서 하이픈(-) 8개로 쌓인 블록이 있다.
+-*-+
|-*-|
|-*-|
+-*-+
  • 별(*) 기준으로 양쪽으로 나누었다면 블록 4개의 쌍이 2개가 된다.
    • 잘라야내는 수직의 별(*)이 1개 존재해야 한다.
  • 4개의 크기의 블록이 2개 존재하는 것이 된다.

8 / 4 = 2

+-+-+
|-+-|
|-+-|
+-+-+
  • 그림에서 하이픈(-) 8개로 쌓인 블록이 있다.
+-+-+
*****
|-+-|
*****
|-+-|
*****
+-+-+
  • 전체 블록에서 별(*) 기준으로 잘라낸다.
    • 잘라야내는 수직의 별(*)이 3개 존재해야 한다.
  • (-) 2개의 크기를 가진 블록이 4개 존재하게 된다.

여기서 의문이 드는 점이 잘라야 하는 별(*)이다. 실제 게임에서 구현할 때는 얼마나 잘라야 하는지 알아야 하는데, 1개 더 적거나 없을 수 있으므로 계산의 유의가 필요하다.


분수

반대로 2 / 8 를 나누면 어떻게 되는가

  • 8개로 나누려면 먼저 선이 7개 필요하다.
  • 2를 8개로 나눈 경우 분수 값을 얻게 된다.
  • 하나의 블록에서 4개를 구한다.
    • 즉, 2/8 = 1/4가 된다.
+---+
|   |
|   |
+---+
|   |
|   |
+---+
  • 위 그림에서 2/8를 나눈 경우는 어떨까
+---+
|@ @|
|@ @|
+---+
|@ @|
|@ @|
+---+
  • 한 블록을 십자가 형태로 잘라 4개를 구하는 방법도 있다.

등식 - 나눗셈 1로 나누기

1로 나눈 다는 것은 아예 아무것도 안하는 것과 같다.
그러나 실제 계산에는 1를 다른 형태로 변경할 필요가 있다.

"(2 / 8) / 1 = 2 / 8" 계산한다고 가정하면 "(2 / 8) / (2 / 2) = 1 / 4 = 2 / 8" 으로 만들어줘야 한다. 분자를 가져와 분모랑 분자 똑같이 만들고 계산을 이어 나간다.

이렇게 계산해주어야 1로 나눈 다는 것은 아무것도 안한 것과 같다는 것이
수학에서 등식으로 증명 되었다고 볼 수 있다.

앞서 "8 / 2 = 4" 식을 계산하였고, 8 / 2 를 서로 위치를 바꿔 2 / 8 계산한 결과 분자 1를 구한 (1/4) 결과를 얻게 된 것이다.


나눗셈의 뺄셈

일반 뺄셈 계산에는 숫자가 앞 뒤로 변경하면 부호가 바뀌는 점에서 유의가 필요하다고 다른 작성 글에서 소개하였다.

  • 2 - 3 = -1
  • 3 - 2 = 1

나눗셈에서는 곱셈에서 사용한 사분면을 사용해 음수와 양수를 이해할 수 있다.

        +b  
         |
     -   |   +
         |
-a +-+-+-+-+-+-+ (+a)
         |
     +   |   -
         |
        -b
  • -4 / -2 = 2 계산이 되며 3번째 긍정적인 영역으로 + 부호가 된다.
  • 4 / -2 = -2 계산이 되며 4번째 부정적인 영역으로 - 부호가 된다.

나눗셈도 사분면을 이용해 쉽게 부호를 구할 수 있었다.


사칙연산 특징

덧셈과 뺄셈, 곱셈, 나눗셈 사칙연산들을 알아보았다. 게임 수학에서 어떤 것이 주의해야할지 정리해보자.

  • 덧셈(+)과 곱셈(*)은 순서에 영향이 없다.
  • 뺄셈(-)은 순서에 따라 정답에 영향이 있다.
  • 나눗셈(/)도 순서에 따라 크기가 영향이 있다.
  • zero(0) 으로 계산하지 않아야 한다.
  • 나눗셈(/)은 곱셈보다 연산 비용이 크다.
  • 덧셈(+)과 곱셈(*) 계산이 누적될수록 정해진 영역에 벗어날 가능성이 있다.
  • 나눗셈(/)과 뺄셈(-)은 계산의 정확성(Precision)이 떨어질 수 있다.

마지막으로, 산수 9-3÷1/3+1의 계산은 얼마인가?
질문의 충분한 힌트가 주어지지 않았으므로 의미가 없을 수 있다.
컴퓨터의 오류를 범하지 않으려면 9-{3/(1/3)}+1 으로 표현해주어야 한다.