252로 105를 위한 Euclid의 호제법의 애니메이션. 크로스바는, 최대공약수(GCD)인 21의 배수를 나타낸다. 각각의 스텝에 대하고, 1개의 번호가 제로가 될 때까지, 보다 적은 수는 보다 큰 수로부터 끌린다. 나머지의 수는, GCD.
Euclid의 호제법(Euclid의 상조 편, 영: Euclidean Algorithm)은, 2개의 자연수의 최대공약수를 요구하는 방법의 하나이다.
2개의 자연수 a, b (a≥b)에 대해서, a의 b에 의한 잉여를 r로 하면, a와 b와의 최대공약수는 b와 r와의 최대공약수에 동일하다고 하는 성질이 성립된다.이 성질을 이용하고, b를 r로 나눈 잉여, 제수 r를 그 잉여로 나눈 잉여, 라고 잉여를 요구하는 계산을 순서대로 반복하면, 잉여가 0이 되었을 때의 제수가 a와 b와의 최대공약수가 된다.
명시적으로 기술된 최고의 알고리즘으로서도 알려져 기원 전 300년경에 기록된 Euclid의 「원론」 제7권, 명제 1에서 3이 그래서 있는[주석 1].
목차
예
(문제) 1071으로 1029의 최대공약수를 요구한다.
1071을 1029로 나눈 나머지는 42
1029를 42로 나눈 나머지는 21
42를 21으로 나눈 나머지는 0
따라서, 최대공약수는 21이다.
증명
a, b는 자연수로 a≠0으로 한다. b를 a로 나눈 상을 q, 잉여를 r로 하면
b = qa + r
지금, d0를 a와 r의 양쪽 모두를 결론 짓는 자연수로 한다.
이 때 d0는 적qa를 결론 짓기 때문에, 화qa + r도 결론 짓지만, qa + r는 b에 동일하다.따라서, d0는 a와 b를 결론 짓는다.즉 a와 r의 공약수는 모두 b와 a의 공약수이다.
반대로, d1를 b와 a의 양쪽 모두를 결론 짓는 자연수로 한다.
d1는 qa를 결론 짓기 때문에 차이 b - qa를 결론 짓지만, b - qa는 r에 동일하다.따라서, d1는 a와 r를 결론 짓는다.바꾸어 말하면 b와 a의 공약수는 모두 a와 r의 공약수이다.
따라서, b와 a의 공약수 전체의 집합은 a와 r의 공약수 전체의 집합에 동일하고, 특히 b와 a의 최대공약수는 a와 r의 최대공약수가 아니면 안된다.
수속적 기술
Euclid의 호제법의 구조는, 이 그림과 같이 최대공약수를 요구하는 대상의 2개의 정수를 폭과 높이로 설정한 장방형내에서의 적색의 경사째의 직선의 묘화 과정에 의해도 표현할 수 있다. 적색의 경사째의 직선의 묘화는, 처음은 그 장방형내를 묘화 범위로 해, 그 모퉁이에서 내부로 향해서 한편, 그쯤 대해 45도의 차이를 갖게해 개시한다. 묘화 범위의 옆의 도중에 해당되면, 그 내부에 직각 반사하도록(듯이) 각도를 바꾼다. 적색의 경사째의 직선이 반사 후에 묘화 범위의 정면의 옆과 다른 옆의 도중에 해당되는 경우, 묘화 범위의 장변의 길이를 단변의 길이로 나누면 나머지가 생기는 상태가 되고 있어 직전의 반사 지점을 발판에 묘화 범위를 수직에 단락지어 그 범위를 좁힌다. (단락지어져 할 수 있던 작은 편의 범위를 이후의 묘화 범위로 한다) (제수 및 피제수의 변경에 상당) 적색의 경사째의 직선이 묘화 범위의 모퉁이에 도달했을 경우, 묘화 범위의 장변의 길이를 단변의 길이로 남아 없게 갈라지는 상태가 되고 있어 묘화의 종료가 되어, 마지막에 해 최소의 묘화 범위(복숭아색의 범위)의 단변의 길이가 최대공약수가 된다.
m를 n로 나눈 나머지를 새롭게 n로 해, 더욱 원래의 n를 새롭게 m로 해 2. 에 돌아온다.
상기의 순서는 「n, m에 대해서 잉여의 연산을 실시할 수 있다」라고 하는 가정인 만큼 의는 있으므로, 정수환 만이 아니게 임의의 Euclid정역에 대해도 똑같이 해 최대 공약 인자를 요구할 수 있다.
확장된 호제법
정수 m, n의 최대공약수(영: Greatest Common Divisor)를 gcd(m, n)와 나타낼 때, (확장된) Euclid의 호제법을 이용하고, mx + ny = gcd(m, n)의 해가 되는 정수 x, y의 조를 찾아낼 수 있다.위의 예의 경우, m = 1071, n = 1029 때,
1071 = 1×1029 + 42
1029 = 24×42 + 21
42 = 2×21
이기 때문에, gcd(1071, 1029) = 21이며,
21 = 1029-24×42
= 1029-24×(1071-1×1029)
= -24×1071 + 25×1029
되므로, x =-24, y = 25이다.
특히, m, n가 서로 소(최대공약수가 1)인 경우, mx + ny = 1의 정수해를(x, y)로 하면, mx + ny = c는 임의의 정수 c에 대해서 정수해(cx, cy)를 가지는 것을 안다.
일반적으로, 에 두고, Euclid의 호제법의 각 과정을 반복해
하지만 얻을 수 있을 때,
즉
여기서
멀고와 이기 때문에(은)는 존재해
이러한 과정에 대하고,, Euclid의 호제법에 의해,이기 때문에,(을)를 고려하면,
된다.
(와)과 일어나 Euclid의 호제법의 각 과정에서 얻을 수 있었다 , , 등을 이용하고, 우변을 계산하면, 좌변의, 하지만 구해져, 이것은 베즈의 등식
나누고 나머지를 취한다고 하는 조작을, 최악에서도 작은 분의 십진법으로의 자리수의 약 5배 반복하면, 최대공약수에 이른다(라메의 정리).
최대공약수를 요구하는데, 소인수 분해 해 보면 좋다고 생각하는 사람이 있을지도 모르지만, 이 정리는 소인수 분해를 이용하는 것보다도 Euclid의 호제법에 따르는 것이 훨씬 빠르다고 하는 것을 말하고 있다.
실제, 계산 complex system 이론에 있고는 최대공약수를 요구하는 것은 「용이한 문제」로서 알려져 있어 소인수 분해는 「곤란한 문제」여도 생각되고 있다. 입력된 2개의 정수의 쳐 작은 편의 정수 n의 자리수를 d라고 하면, Euclid의 호제법으로는 O(d) 회의 제산으로 최대공약수가 요구된다.자리수 d는 O(log n)이므로, Euclid의 호제법으로는 O(log n) 회의 제산으로 최대공약수가 요구된다.
연분수
위의 예로 나온, 1071으로 1029의 최대공약수를 요구하는 과정은, 다음 같게 나타낼 수 있다.
즉,
따라서,
이와 같이, n와 m (n > m)의 최대공약수를 요구할 때의 Euclid의 호제법의 나눗셈의 상은, 유리수 n/m의 연분수 전개가 되어 있다.
In addition, Tranpedia is simply not responsible for any show is only by translating the writings of foreign licenses that are compatible with CC-BY-SA license information.
0 개의 댓글:
댓글 쓰기