반응형
0archlinux0
Fun math Cute momonga
0archlinux0
전체 방문자
오늘
어제
  • Categories (20)
    • Algorithm (4)
      • Graph Theory (3)
      • Number Theory (0)
      • Data Structure (0)
      • String (0)
      • Etc (1)
    • Math (9)
      • Number Theory (2)
      • Proof of PS solutions (1)
      • 미적분학 (0)
      • 복소해석학 (0)
      • 리만기하학 (0)
      • Linear Algebra 선형 대수학 (0)
      • 이산수학-그래프이론 (0)
      • Analysis 해석학 (6)
    • PS (7)
      • 백준 (7)
      • leetcode (0)
      • codeforce (0)
      • 프로그래머스 (0)
      • PS일지 (0)
    • CS (0)
      • Network (0)
      • Automata theory (0)
      • Computer Graphics (0)
    • 다락방 (0)
      • CS (0)
      • Math (0)
      • Physics (0)
      • Language (0)
      • Etc (0)
      • Todo-Daily (0)
    • Machine Learning (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • !

인기 글

태그

  • math
  • 증명
  • Automata Theory
  • algorithm
  • 백준
  • 해석학
  • set theory
  • ps
  • 오토마톤
  • analysis

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
0archlinux0

Fun math Cute momonga

Math/Number Theory

Euclidean Algorithm - 유클리드 호제법

2022. 4. 2. 18:46
반응형

# Definition

$ a = bq + r(0 \le r < b) $ $\Rightarrow $ $GCD(a, b) = GCD(b, r)$


최대공약수에 관한 문제에서 자주 쓰이는 기본 정리 중 하나이다.

증명부터 해보자.

 

$ Lemma 1)$ $WLOG \ a >= b,$ $GCD(a, b) = GCD(a-b, b) $


$g=GCD(a,b),$ $ \ a = gA,$ $ \ b =gB$ 라 두자.

$ GCD(a-b, b) $ $= GCD(g(A-B), gB) $ 이기에 A-B와 B가 서로소임을 보이면 Lemma 1은 증명된다.

귀류법으로

$ GCD(A-B, B) = g_{A,B},$ $A-B = g_{A,B}M,\ B $ $= g_{A,B}N,\ g_{A,B} \neq 1$ 를 만족하는

$\exists g_{A,B} \in \mathbb{Z} $가 존재한다고 가정하자.

$ B = g_{A,B}N,$ $A = (A-B) + B = g_{A,B}M + g_{A,B}N $ $= g_{A,B}(M+N) $

$ a = gA $ $= gg_{A,B}(M+N),$ $ b = gB =$ $ gg_{A,B}N $으로 부터

$ g = GCD(a, b) $ $= \geq gg_{A,B} $

$ g_{A,B} \le 1 $ 

이는 가정과 모순됨으로 Lemma 1이 증명된다.

 

이제 Lemma 1으로부터 본 정리가 증명됨은 자명하다.

 

$WLOG\ a=bq+r(0 \le r < B) $ 이라 두자.

$ GCD(a, b) = GCD(a - b, b) $ $= GCD(a - 2b, b) = \cdots $ $= GCD(a - bq, b) = GCD(r, b) $ $= GCD(b, r) $

을 얻을 수 있음을 확인 할 수 있다.

 

# Pseudo Code

유클리드 호제법을 이용한 최대공약수를 구하는 코드는 다음과 같이 간결하게 쓸 수 있다.

int gcd(int a, b) {
  if(b == 0) return a;
  return gcd(b, a%b);
}

 

 

반응형
    'Math/Number Theory' 카테고리의 다른 글
    • Bézout's identity - 베주 항등식(Part. 1)
    0archlinux0
    0archlinux0
    수학과 다람쥐가 좋은 사람

    티스토리툴바