유클리드 호제법

조천룡·2023년 5월 12일

math

목록 보기
2/4
post-thumbnail

유클리드 호제법이란 ?

  • 유클리드 호제법은 2개 자연수의 최대공약수를 구할 수 있는데, 한 자연수를 다른 자연수로 서로 나눠 결국 원하는 수를 얻는 알고리즘이다.
  • 유클리드(Euclid)에 의해 기원전 300년경에 발견된 가장 오래된 알고리즘이다.
호제법이란? 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘을 말한다.

원리

  • ' 2개의 자연수 a, b에 대해 a를 b로 나눈 나머지를 r이라 하면, a와 b의 최대공약수는 b와 r의 최대공약수와 같다 '라는 성질을 이용한다.
  • 이 성질에 따라, 나머지로 계속 나눠 나머지가 0이 됐을 때 나누는 수가 a와 b의 최대공약수가 된다.

이해하기

예를 들어 94와 42의 최대공약수를 유클리드 호제법으로 구하면

94= 42×2+10 (94를 42로 나눈 나머지는 10)

42= 10×4+2 (42를 10으로 나눈 나머지는 2)

10= 2×5+0 (10을 2로 나눈 나머지는 0)

그래서 최대공약수는 2가 된다.

최대공약수를 구하는 기본적인 방법은 각 자연수를 소인수분해 해서 비교하면 쉽게 구할 수 있다. 하지만 각 자연수의 소인수분해가 쉽지 않은 큰 수 일 때는 이 유클리드 호제법이 아주 유용하게 쓰인다.

이번엔 유클리드 호제법을 이용하여 9x+25y=1과 같은 미지수가 2개인 일차방정식의 정수해를 구해보자.

먼저 x와 y의 계수인 9와 25로 유클리드 호제법을 이용해 한 개의 해를 구한다.

25= 9×2+7 (25를 9로 나눈 나머지는 7)

9= 7×1+2 (9를 7로 나눈 나머지는 2)

7= 2×3+1 (7를 2로 나눈 나머지는 1)

이 등식을 나머지에 관해 정리해 역순으로 대입하면 다음을 얻을 수 있다.

1= 7+2×(-3)

= 7+{9+(-1)×7}×(-3)

= 9×(-3)+7×4

= 9×(-3)+{25+(-2)×9}×4

= 9×(-11)+25×4

그래서 한 정수해는 (x, y)=(-11, 4) 임을 알 수 있고, 모든 정수해는 (x, y)=(25n-11, -9n+4) (n은 정수) 로 구할 수 있다.

이처럼 유클리드 호제법은 주어진 수들이 상당히 큰 수일 때, 최대공약수를 훨씬 빠르게 구할 수 있으며, 이를 활용하면 미지수가 2개인 일차방정식의 정수해를 구체적으로 구할 수 있다.

정리

  • 간단하게 말하면, 유클리드 호제법은 MOD연산을 반복하면 된다.
  • 유클리드 호제법은 나눗셈만 반복해서 최대공약수 (GCD)를 구할수 있다.
  • 두 개의 수가 아무리 커도 정해진 순서로 계산하면 효율적으로 최대공약수를 구할수 있다.
profile
10√2 Data

0개의 댓글