112. 확률의 기초

3또는 다이아 카드를 뽑을 확률

교집합을 빼는 이유는 겹치는 부분이 두번 더해졌기 때문이다.

 

 

113. 연속 시행

독립사건의 연속시행


독립사건의 연속시행은 기존의 결과가 이후의 결과에 영향을 주지 않기때문에 두 확률을 곱하면 구할 수 있다.

예를 들면 주사위를 두번 던져서 6을 연속으로 뽑을 확률이다.

 

종속사건의 연속시행은 기존의 결과가 이후의 결과에 영향을 주기 때문에 수형도를 그려서 각각의 경우를 맞는 조건에 따라 계산해야한다.

예를 들면 카드 두장을 뽑아서 에이스를 연속으로 뽑거나 두장 중 에이스를 한번이라도 뽑을 확률이다.

 

수형도의 모든 확률을 더하면 반드시 1이 나온다. 만약 1이 나오지 않았다면 잘못 작성한것이다.

 

B는 A에 종속되어있기 때문에 독립시행일때와 식이 다르다.

 

 

114. 여사건 법칙

위의 종속사건의 연속시행을 계산하는 경우라면 사실 모든 확률을 더하는것보다 해당되지 않는 경우를 빼는것이 더 쉽고 빠르게 구할 수 있다. 모든 경우는 아니고 이게 더 쉬운 경우가 있다는 것이다. 또한 종속사건의 연속시행 뿐만 아니라 독립사건의 연속시행에도 당연히 적용할 수 있다.

 

예를 들면 동전을 6번 던져서 최소 한번 이상 앞면이 나올 확률이다. 총 64가지의 경우의 수가 생기는데 이를 수형도를 통해 모든 확률을 더하기보다는 앞면이 한번도 안나오는 경우의 수는 딱 한가지이기 때문에 1에서 이 확률만 빼주면 된다.

 

확률을 구하기 어려운것 같으면 반대로 뒤집어서 생각해보아야 한다.

 

 

115. 이론적 확률과 경험적 확률

시행 횟수(표본의 집단)가 많을수록 이론적 확률에 근접하게된다. 큰 수의 법칙이다.

확률을 이론적으로 구할 수 있지만 따로 경험적 확률이 있어야 하는 이유는 뭘까? 바로 검증때문이다.

확률을 코드로 작성하다보면 실수 또는 예상치 못한 부분에서 변수가 발생하여 의도치 않은 결과가 나올 수도 있다.

 

또는 애니팡같은 게임들은 가능한 조합과 무작위성을 추측하여 이론적 확률을 계산하기 매우 어렵기때문에 매우 많은 시뮬레이션을 통해 직접 데이터를 확인하는 경우가 있다.

'이론 > 게임수학' 카테고리의 다른 글

[게임수학] 확률과 통계 (4)  (0) 2023.01.17
[게임수학] 확률과 통계 (2)  (0) 2023.01.16
[게임수학] 확률과 통계 (1)  (0) 2023.01.14
[게임수학] 회전과 보간 (4)  (0) 2023.01.13
[게임수학] 회전과 보간 (3)  (0) 2023.01.13

106. 왜도

대칭적인 정규분포

정규분포는 확률과 통계에서 많이 사용된다.

정규분포에서 최고점은 최빈값에 해당되지만, 대칭적인 정규분포에서는 산술평균, 중앙값, 최빈값 모두에 해당된다.

 

양의 왜도 또는 오른쪽으로 왜곡된 정규분포

정규분포가 양의 왜도를 가지면 산술 평균과 중앙값은 최빈값보다 커진다. 반대로 음의 왜도를 가지면 최빈값보다 작아진다.

 

 

107. 사분위간 범위

양 끝에 존재하는 극단치는 스팬을 크게 만든다. 실제로 관심 있는 데이터는 극단치를 제외한 가운데 부분이기 때문에 사분위간 범위라는것을 사용한다.

말이 어려운것 같지만 전체 범위를 4등분한 사이에 있는 값들의 범위이다. (1/2)

 

전체 중앙값과 양쪽으로 나뉜 범위에 대한 2개의 중앙값

Q1~Q3 사이의 값들이 사분위수 범위이다.

 

 

108. 표준편차

먼저 분산을 알아야한다. 분산은 산술평균을 구해서 각 데이터와 산술평균과의 차이를 제곱하여 다시 산술평균을 내는 것이다.

이렇게 구한 분산의 제곱근이 표준편차가 된다. 산술평균값에 표준편차값을 ±하여 만들어진 범위안에 대부분의 값들이 위치하게 된다.

 

모집단의 표준편차 (μ: 산술평균)

단, 주의해야할점이 하나 있다. 모든 데이터를 포함하는 모집단인지, 혹은 일부 데이터만 포함된 표본집단인지 여부에 따라 n의 값이 달라진다.

모집단인 경우 위의 공식 그대로 쓰고 표본집단인 경우에는 n-1을 사용한다. 그 이유는 오차범위를 넓힘으로써 표본에서 잃어버렸을수도 있는 데이터를 고려해주기 위함이다.

 

또한 표본집단의 표준편차는 σ가 아닌 s로 표기한다.

 

표본집단의 표준편차

계산은 똑같은데 표기만 달라질뿐이다. 조금 번거롭다고 생각될지 모르지만 기호만 보고도 어떤 표준편차인지 알 수 있다.

 

 

109. 상관

상관은 데이터간에 관계가 있는지 여부를 알 수 있다.

 

상관여부를 시각적으로 확인할 수 있는 가장 쉬운 방법

1. 가능한 많은 점이 지나도록 선분을 긋는다.

2. 선의 위쪽과 아래쪽에 거의 같은 수의 점이 있도록 한다.

3. 점들이 선으로부터 멀리 떨어지지 않아야 한다.

 

상관관계를 표현하는 상관계수를 r이라고 한다. -1과 1사이의 값을 가질 수 있고 -1이면 완벽한 음의 상관관계, 1이면 완벽한 양의 상관관계, 0이면 아무런 상관이 없다.

 

r을 구하는 방법은 모집단의 산술평균을 먼저 구하고 같은 행의 두 값을 곱한 뒤에 산술평균을 낸다. (공분산)

이 공분산을 x의 표준편차와 y의 표준편차를 곱한 값으로 나눠주면 r을 구할 수 있다.

 

상관계수 r을 구하는 방법

보통 0.7보다 큰 값이면 큰 양의 상관관계, 0.5~0.7이면 중간정도의 양의 상관관계, 0.3~0.5는 약한 양의 상관관계, 0~0.3은 상관관계가 없다고 본다.

 

 

111. 데이터 정규화

어떤 데이터셋 x가 주어졌을 때, 해당 데이터셋의 최소값과 최대값, 그리고 단일 데이터들이 필요하다.

각 단일 데이터마다 위의 연산을 수행하면 0~1사이의 정규화된 값으로 조정된다. 만약 0~1이 아닌 다른 범위가 필요하다면 해당 결과에 (범위 최대값 - 범위 최소값)을 곱해준 뒤에 범위 최소값을 더해주면 된다.

 

a=범위 최소값, b=범위 최대값

'이론 > 게임수학' 카테고리의 다른 글

[게임수학] 확률과 통계 (4)  (0) 2023.01.17
[게임수학] 확률과 통계 (3)  (0) 2023.01.16
[게임수학] 확률과 통계 (1)  (0) 2023.01.14
[게임수학] 회전과 보간 (4)  (0) 2023.01.13
[게임수학] 회전과 보간 (3)  (0) 2023.01.13

101. 데이터 들여다보기

보통 게임의 데이터는 원시 상태라서 바로 읽기에는 무리가 있다. 이를 읽기 쉽게 만들기 위해 사용되는 보편적인 방법은 도수분포표를 만드는 것이다.

 

도수분포표를 토대로 그린 단일변수 차트

차트를 그림으로써 시각적으로 5단계와 6단계 사이에 무언가 문제가 있다는 사실을 추측할 수 있게 된다.

다만 어떤 문제인지는 구체적으로 확인할 수 없고 추정만 가능하다. 이 때 추가적으로 버그리포트나 플레이어 피드백 등을 확인하여 문제점을 구체화 시켜야 한다.

 

막대차트 대신 상황에 맞춰서 파이차트도 그릴 수 있다. 한가지 권장사항으로 차트 툴에서 제공하는 3D 차트는 피하는것이 좋다.

 

 

102. 백분율

40의 100%는 40이고 100의 40% 역시 40이다. 이를 이용하여 백분율 암산을 더 쉽게 할 수 있다.

수식으로 정리하면 x% of y = y% of x이다. 25의 24%를 구하는 것보다 24의 25%를 구하는게 훨씬 쉽다.

 

값의 증가율을 구하는 식

예시 하나를 들어보자. 어떤 플레이어가 랭크게임을 시작하기 전의 레이팅이 1123이었고 끝난후의 레이팅이 1251이면 11.3%가 증가한 것이다.

 

 

103. 시그마 표기법

반복문을 작성하는 것과 같다. 시그마는 그저 모든 요소를 더할 뿐이다.

 

 

104. 평균

평균에는 산술평균, 중앙값, 최빈값 총 3가지가 존재한다.

 

◾ 산술평균 : 우리가 아는 그 평균.

장점 : 연속적인 수치자료에 사용될 수 있다 (예: 킬 평균)

단점 : 수치자료가 아닐 때 사용할 수 없다. (예: 유저들의 선호무기)

극단치가 있을 때 값이 왜곡된다. (예: 99명의 0킬과 1명의 1000킬 산술평균은 10킬)

 

◾ 중앙값 : 데이터 셋의 가운데 값. 원소의 개수가 짝수인 경우 가운데를 기준으로 좌우값의 산술평균값을 산출한다.

장점 : 극단치와 관계가 없어진다.

단점 : 정렬이 되지 않으면 사용이 불가능하다. 마찬가지로 수치자료에만 사용이 가능하다.

 

◾ 최빈값 : 데이터 셋에서 가장 많이 나타난 값.

 

 

105. 극단치

어떤 데이터를 다루던 간에 극단치는 존재할 수 있다.

 

위와 같은 산포도에서 극단치가 존재하는 경우 우리는 세 가지 선택을 할 수 있다.

첫번째, 그냥 무시하는 것이다. 극단치도 데이터의 일부이기 때문이다. 다만 해당 수치를 무시할 뿐이다.

두번째, 데이터 셋에서 제외시킨다. 너무 눈에 띄는 극단치라면 제외하고 싶기 때문이다.

세번째, 어떤 기준에 의해 데이터를 반영하여 원래 되어야 했을 값을 추정하여 값을 조정한다.

 

세가지 방법중 상황에 따라 필요한것을 선택하면 된다.

보통 데이터의 무결성을 위해 극단치까지 포함된 보고서와 극단치를 처리한 보고서 총 2개를 작성하는게 일반적이다.

'이론 > 게임수학' 카테고리의 다른 글

[게임수학] 확률과 통계 (3)  (0) 2023.01.16
[게임수학] 확률과 통계 (2)  (0) 2023.01.16
[게임수학] 회전과 보간 (4)  (0) 2023.01.13
[게임수학] 회전과 보간 (3)  (0) 2023.01.13
[게임수학] 회전과 보간 (2)  (0) 2023.01.12

96. 선형 보간

두 점 a, b 사이의 일정 비율의 값을 구하는 공식은 위와 같다. t는 0 <= t <= 1의 값을 가지게 된다.

선형 보간의 개념은 매우 단순하다. 보통 엔진이나 라이브러리에서 실수, 벡터, 사원수에 대한 선형보간 함수 Lerp를 제공해준다.

 

 

97. 구면 선형 보간

선형 보간처럼 두 점 a, b 사이의 일정 비율의 값을 구하는것은 동일하지만 직선이 아닌 호로 보간한다.

 

선형 보간의 식과 매우 닮았다.

 

덧붙여서 선형 보간을 정규화 시키면 두 점 사이에 가장 짧은 호를 따라가는 구면 보간을 얻을 수 있다.

 

다만 완벽한 보간은 아니고 가속도가 생기는 보간이 된다.

주로 선형 보간을 많이 사용하게 될 것이다.

 

 

98. 이징 함수

이징 함수는 보통 위의 네가지 범주에 들어간다.

가속도에 차이가 있을 뿐, 네가지 모두 목적지에 도달하는 시간은 동일하다.

 

https://easings.net/ko

위의 홈페이지에서 다양한 이징 함수의 모양을 볼 수 있다

'이론 > 게임수학' 카테고리의 다른 글

[게임수학] 확률과 통계 (2)  (0) 2023.01.16
[게임수학] 확률과 통계 (1)  (0) 2023.01.14
[게임수학] 회전과 보간 (3)  (0) 2023.01.13
[게임수학] 회전과 보간 (2)  (0) 2023.01.12
[게임수학] 회전과 보간 (1)  (0) 2023.01.12

91. 사원수란 무엇인가

사원수를 나타내는 방법

위와 같은 형태를 가진다. 복소수를 확장시켜서 나온 개념이다.

 

 

92. 사원수 곱셈 1부

실수와 복소수에서의 곱셈은 교환법칙이 성립하지만 사원수에서는 곱셈의 교환법칙이 성립하지 않는다.

 

i, j, k의 관계
사원수의 곱셈

사원수끼리의 곱셈은 포일 메서드와 같이 각 요소마다 총 16번 곱해주면 된다.

 

전개된 식을 위의 i, j, k 관계로 다시 정리하면 약간 더 단순화 된다.

 

 

93. 사원수 곱셈 2부

전개식을 마저 정리하면 실수곱, 내적, 외적으로 깔끔하게 정리된다.

 

행렬로 더 깔끔하게 정리할수도 있다. 4x1행렬에 어떤걸 놓느냐에 따라 일부 부호가 달라진다.

 

 

94. 사원수 회전 1부

사원수의 곱으로 발생되는 회전은 일종의 4차원 회전이다. 하지만 4차원은 시각적으로 표현하기가 매우 어렵기때문에 jk평면에서의 회전은 볼 수 있지만 i의 복소평면에서의 회전은 시각적으로 회전으로 보이지 않고 i, -i 사이에서 값이 생겼다가 사라졌다 한다.

 

위의 그림은 i축을 기준으로 회전한것을 표현한것인데, 허수축에서 jk평면 회전과 i의 복소평면에서의 회전 총 2번이 이루어진다고 보면 된다.

 

시각적으로 상상하기가 매우 어려운게 맞다.

3차원 물체가 z축 앞뒤로 움직이는것을 2차원 xy평면에서 바라본다고 하면 평면에서 사라졌다가 생겼다가 하기 때문이다. (2차원 평면과 닿아있는 단면만 볼 수 있다.)

 

사원수와 켤레사원수

 

 

95. 사원수 회전 2부

사원수 회전식
qv와 vq*

어떤 사원수 q에 입력벡터 v를 곱하면(qv) 3차원에서의 회전과 4차원에서의 회전이 이루어진다.

어떤 입력벡터 v에 켤레사원수 q*를 곱하면(vq*) 3차원에서의 회전과 4차원에서의 역방향 회전이 이루어진다.

이 둘을 결합하면 qvq*가 되고 같은 방향으로의 3차원 회전이 두번 이루어지고 4차원에서의 회전이 상쇄되어 2번의 3차원 회전만 남게된다.

 

잠시 2차원에서의 회전을 짚어보고 가자.

 

v를 θ만큼 회전시킨게 v'이라고 했을 때, 공식은 위와 같다. 이 공식을 사원수로 확장시켜보자.

 

복소평면에서의 i축을 실수, ijk공간을 하나의 축으로써 본다. ijk공간은 실제로 3차원 공간이지만 표현상 2차원으로밖에 되지 않는다.

 

복소평면에서 실수축과 직교하는 i축이 있는것처럼 ijk공간에 존재하는 벡터 u의 축은 실수축과 직교한다. 또한 벡터 u는 회전축을 나타낸다. 벡터 u를 전개한 사원수 q는 다음과 같다.

 

앞서 qvq*는 3차원 회전이 두번 이루어지고 4차원 회전이 상쇄되었다고 했다. 하지만 우리가 회전하고자 하는 각은 θ이지 2θ가 아니다. 그래서 θ가 아닌 θ/2를 사용하게 된다.

 

최종적으로 위의 식이 완성된다.

사원수의 곱은 어떻게 작동하는지 정확히 이해하고 난 뒤에 특별히 수정해야 할 일이 발생하지 않는 한 만들어진 코드를 수정하지 않는것이 좋다.

 

마지막으로, 사원수의 곱에 의한 회전이 2배로 이루어지는것 때문에 180도 이상의 회전을 나타낼 수 없다.

'이론 > 게임수학' 카테고리의 다른 글

[게임수학] 확률과 통계 (1)  (0) 2023.01.14
[게임수학] 회전과 보간 (4)  (0) 2023.01.13
[게임수학] 회전과 보간 (2)  (0) 2023.01.12
[게임수학] 회전과 보간 (1)  (0) 2023.01.12
[게임수학] 벡터와 행렬 (4)  (0) 2023.01.11

+ Recent posts