2013년 12월 12일 목요일

수의 법칙

살아가는 동안, 수학은 모든 분야에서 필요로 할 만큼 중요하죠.
자신의 직업에 따라서 작게 또는 크게 영향을 줄 수 있어요.

특히, 게임 개발에서 수학은 굉장히 중요한 것이에요.
게임 디자인, 프로그램, 그래픽 등등 게임 개발의 모든 분야에 걸쳐 수학이 필요하지 않은 부분이 없답니다.

모든 일을 할때 알고 하는 것과 모르고 하는것은 큰 차이가 있다고 생각해요.
모르고 하는 일이라고 해도 반복적으로 계속하게 되면 결국은 그 원리와 방법을 알게 되겠지만 이미 알고 시작하는 사람보다 더 오랜 시간이 걸리겠죠.

그래서 게임 개발을 하고자 하는 분들을 위해 수학의 기본 이론을 되짚어 보고자 글을 쓰게 되었어요.

게임 개발자가 아니더라도 게임 개발에 필요한 지식들을 배우고 활용하는 것은 논리적 사고와 수리 능력이 향상되며 디자인 감각, 심리학, 사람과 사람간의 이해 관계 향상 등등 많은 부분에서 도움이 될 것이라고 생각해요.

실제로 단순한 게임 하나를 만들더라도 위에 나열한 모든 부분과 그 이외의 많은 지식들을 요구되거든요.

그러면 첫번째로 수의 기본 법칙들에 대해서 되짚어 볼께요.

모든 과학과 수학은 당연하다고 생각하는 것들을 의심하는 데서 출발하고 그것을 다시 일반화 시키는 것에 있어요.

간단하게 생각해서 3+2와 2+3은 같은것일까요?

당연히 같겠죠.
덧셈을 할때는 순서가 중요하지 않죠. 이것을 교환법칙이라고 해요.

이렇게 당연한 수학 법칙들을 몇개 써보자면,

짝수 + 짝수 = 짝수
홀수 + 홀수 = 짝수
짝수 + 홀수 = 홀수 
홀수 + 짝수 = 홀수

이런것들이 있겠네요.
같은 수를 더하면 무조건 짝수가 나오고 다른 수를 더하면 무조건 홀수가 나온다.
나중에 이것을 증명해 보일께요.

곱셈을 살펴볼까요.

5 + 5 + 5 = 15

5를 세번 더했네요. 이것을 곱하기를 이용해서 써본다면

5 X 3 = 15

이렇게 쓸수 있겠네요. 
다시 말해서 5를 세번 더한다라는 뜻이 되는거죠.
5를 몇번 더하느냐에 따라서 결과가 달라지겠네요.

그러면 이 몇번 더한다라는 개념을 숫자를 쓰지 말고 문자를 쓰면 어떻게 될까요?

5 X A = ?

5를 A번 더한 값이 ?가 되겠죠. 
이 개념은 앞으로 모든 수학에서 사용되기 때문에 반드시 알아야 해요.

A 대신에 다른 문자를 사용해도 무방해요. 다만 일반적으로 많이들 쓰는 문자들이 있는데 일종의 무언의 약속 같은 것들이죠.

t(Time), r(Radius), w(Width), h(Height), n(Number) 등등이 있어요.

이런것들을 '대수'라고 한답니다.

우리가 실생활에서 사용하는 숫자들을 나열해보면

1, 2, 3, 4, 5, 6, 7 .......(끝없이 계속 가겠네요)

이런 숫자들을 자연수 또는 가산수라고 합니다. 

이것을 대수를 이용해서 써본다면 

N = N + 1 

이렇게 쓸 수 있겠네요

어떤 숫자 N은 N 더하기 1이라는 뜻이죠. 숫자 N은 언제나 자신보다 1 큰 숫자가 된다라는 뜻이겠네요.

자연수에 대한 성질은 다음과 같아요.


  1. 모든 자연수 A는 그 다음 수 A + 1이 존재한다.
  2. 모든 자연수 A는 그 전 수 A - 1이 존재한다.(A가 1인 경우엔 제외, 이 경우엔 0이 되므로)
  3. 모든 자연수에는 순서가 존재한다. 자연수 A와 B는 다음 세가지 경우중 하나이다. A가 B보다 크던가, A와 B가 같든가, A가 B보다 작든가.
  4. 모든 자연수는 더하는 순서가 상관없다.(교환법칙)
  5. 모든 자연수는 곱하는 순서가 상관없다.(교환법칙)
  6. 모든 자연수의 계산식에서 모두 더하기일때 괄호의 위치는 상관없다.(결합법칙)
  7. 모든 자연수의 계산식에서 모두 곱하기일때 괄호의 위치는 상관없다.(결합법칙)
  8. 두 자연수를 더하면 언제나 자연수가 된다(닫힘성질)
  9. 두 자연수를 곱하면 언제나 자연수가 된다(닫힘성질)
그리고 계산식에서는 더하기와 곱하기가 같이 나오는 경우도 있기때문에 계산 순서에 대한 규정이 필요해요. 아래와 같아요. 우선도가 높은 순서대로 쓸께요.

  1. 무조건 괄호 안의 숫자를 먼저 계산한다.
  2. 지수가 있을 경우는 지수부터 계산하고 나서 나머지 순서대로 계산한다.
  3. 괄호가 없을 경우에도 더하기와 빼기 보다 곱하기와 나누기를 먼저 계산한다.
  4. 우선도가 같은 수일 경우 왼쪽에서 오른쪽 순서대로 계산한다.
간단한 문제를 하나 풀어볼께요

시간당 5000원짜리 아르바이트를 할때 첫번째 주에는 20시간 일했고 두번째 주에는 24시간 일을 했다고 한다면 내가 받을 돈은 얼마인지 계산해볼께요

5000 X 20 + 5000 X 24 = 220000

22만원을 벌게 되는군요. 이 계산식을 보니까 공통된 점이 있네요. 5000이 공통되는 부분인데... 그러면 총 일한 시간을 먼저 계산하고 거기다가 시급을 곱해줘도 되겠네요. 

5000 X (20 + 24) = 220000

이렇게요. 이것을 분배법칙이라고 해요. 거꾸로 써도 가능하죠.

A X (B + C) = (A X B) + (A X C) = A X B + A X C

위의 계산식이 성립되는 것이죠.

그러면 '대수'를 이용해서 짝수와 홀수의 덧셈의 성질을 증명해 볼께요.

자연수를 N이라고 하고 결과값을 S라고 정하고요.

모든 짝수는 

S = 2 X N

이라고 쓸 수 있겠죠.

모든 홀수는 

S = (2 X N) + 1

이라고 쓸수 있구요. 

짝수와 짝수를 더해볼께요. 두 짝수는 서로 다른 수일테니까 하나는 M이라고 할께요.

S = (2 X N) + (2 X M)
S = 2 X (N + M)

여기서 닫힘성질에 따르면 (M + N) 역시 자연수가 되겠죠. 그러면 S는 자연수가 되겠네요.

다른 수들도 이와 같은 방법으로 확인 해보세요.

이런 증명은 수학자가 아닌 이상 할 필요가 없겠지만, 이런 논리적인 사고방식은 게임 개발에 있어서 중요하고 반복적으로 하게 됩니다.
캐릭터 하나를 만들고 그것이 게임 세계에서 뛰어다니게 하는 것은 이런 논리적인 문제를 끊임 없이 풀어 나가는 과정이니까요.





댓글 없음:

댓글 쓰기