게임 수학 - 나머지

나머지는 Remainders로 게임에서 자주 사용하는 수학이다.
수학에서 나눗셈에서 나눈 후 나머지 숫자를 나머지라 표현한다.

다섯 개의 카드가 주어진다고 가정한다.

+---+  +---+  +---+  +---+  +---+
| 1 |  | 2 |  | 3 |  | 4 |  | 5 |  
+---+  +---+  +---+  +---+  +---+
  • 5개 카드가 주어졌다.

다음으로 두 개씩 짝을 지어 숫자끼리 그룹을 맺는다.

+---------------+ +---------------+
|  +---+  +---+ | |  +---+  +---+ | +---+
|  | 1 |  | 2 | | |  | 3 |  | 4 | | | 5 |  
|  +---+  +---+ | |  +---+  +---+ | +---+
+---------------+ +---------------+
  • 1번,2번 카드와 3번,4번 카드를 그룹을 맺었다.

이 때 5번 카드는 그룹을 맺지 않으므로 나머지(Reminder)가 1개 남게 된다.
수학의 숫자로 표현하면 5 / 2 = 2 나머지 r이 1 개가 된다.


Even, Odd

나머지는 Even, Odd의 홀 짝에서도 자주 연관 되어 구현되기도 하다.

랜덤의 숫자를 가리키는 x에서 2로 나눈다고 가정하면 "x / 2 = ?" 이때 ?의 결과에 따라 홀수인지 짝수인지 결정된다.

  • x / 2 = ? 결과 값이 0이면 짝수
  • x / 2 = ? 결과 값이 1이면 홀수

이 예에서는 두 플레이어가 격돌하였을 때 누가 먼저 선방을 얻는 지에서 자주 응용된다.

플레이어의 남은 시간은 몇 초인가

  • 게임의 턴은 타이머가 30초마다 진행한다.
  • 처음 시작은 첫 번째 플레이어가 시작하였다.
  • 두 플레이어가 게임 진행 시간이 84초이다.

먼저 첫 번째 플레이어가 시작하였다는 것을 알고 있다.
사칙연산으로 응용하면 "84/30" 계산은 "2.8" 이 된다.

2.0 은 등식에서 제외하고 0.8 에서 곱하기 30 으로 계산한다. (0.8 * 30)
결과는 24가 출력할 것이고 여기서 30를 빼고 6초가 남았다는 것을 알게된다.

사칙연산으로 계산하면 등식에서 제외하는 식이 필요하고 (재귀, 반복문 필요) 수식도 복잡하다.


나머지 % 연산자

플레이어의 남은 시간 몇 초의 문제를 이어서, 나머지(%) 연산자로 활용을 해보도록 한다.
84 % 30 수식을 계산하면 나머지 24가 출력할 것이고 출력한 값의 30를 빼면 6초가 남는다.

나머지 % 연산자를 활용하면 수식도 간편하고 계산이 수월해 자주 응용된다.