간단한 수학
유클리드 호제법(Euclidean Algorithm)
Cadi
2025. 2. 12. 00:54
개념
- 두 수의 최대공약수 (GDC, Greates Common Divisor)를 구하는 알고리즘
- 호제법 - 두 수를 나누고 나머지를 이용하는 방식
원리
- 어떤 자연수 A, B (A > B) 에 대해 A를 B로 나눈 나머지를 r이라고 할 때
GDC(a,b) = GDC(b,r)이 성립한다. - 이를 반복하여 나머지가 0이 되면 , 그때의 나누는 수가 최대공약수이ㅏㄷ.
코드 예시
int GCD(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
void Start() {
Debug.Log(GCD(48, 18)); // 출력: 6
}
예시와 같이 48 18이 있다면
48 % 18 은 12가 되고
18 % 12 는 6이되고
12 % 6 은 0이 되므로, 최대 공약수는 6이 된다.
유니티에서의 사용
- 비율 정규화 (좌표, 크기 조정) : 게임 오브젝트의 크기나 비율을 일정한 비율로 조정 EX) 해상도 조정
- 타일맵 시스템에서 격자 크기 조정 : 서로 다른 타일 크기의 최소 공통단위를 찾음
- FPS 조절 및 프레임 동기화 : 서로 다른 프레임 속도를 가진 시스템 간의 최적 주기 찾음
시간복잡도
- O(log N)의 시간 복잡도