Processing math: 100%
알고리즘 블로그
article thumbnail

프로베니우스의 동전 문제는, a원의 동전과 b원의 동전만으로 만들 수 없는 금액의 최댓값을 구하는 문제입니다.

(이때, a, b는 자연수입니다.)

 

공식만 알고 있었는데, 정확한 적용 범위가 헷갈려서 아예 증명을 해봅니다. 잘못된 부분이 있다면 알려주세요 :)

 

표기

  • N0:= 음이 아닌 정수 집합
  • N+:= 양의 정수 집합

 

Theorem.  서로소인 두 정수 a,bN+에 대해 an+bm(n,mN0)로 표현할 수 없는 최대의 정수는 abab이다.


보조정리 1과 보조정리 2가 참임을 보이면 theorem도 참이다.

 

보조정리 1. an+bm=abab(n,m)은 존재하지 않는다.

표현이 가능하다고 가정하자.

abab=a(b1)+b(1).

a(b1k)+b(1+akb)(1kb1)꼴로 표현 될 것이다.

그런데, ba는 서로소이므로 b|k여야 한다. 하지만 k<bbk이므로 mZ여서 모순이다.


보조정리 2. an+bmxabab+1=(a1)(b1)를 모두 표현할 수 있다.

{xak|0k<b}b에 대한 완전 잉여계이므로 b|(xan)nN0가 존재한다. xan=bm(mZ)이라고 하자.

이제 m0 이상임을 보이면 된다.

bm=xan(a1)(b1)a(b1)=b+1.

b(m+1)1.

m+11/b>0.

m>1m0.


만약 gcd(a,b)1이거나, a,b,c의 3가지 동전이 있는 등 다른 경우에는 프로베니우스의 동전 문제 공식이 적용되지 않는다.

따라서 이럴 때에는 표를 만들어 채워나가는 방식이 좋다. 마치 에라토스테네스의 체를 이용하는 것처럼 말이다.

0{a,b,c}를 지우고, a{a+a,a+b,a+c}를 지우고, ...를 반복하면 된다. 이 때 표를 적당히 열의 수가 a,b,c 중 하나가 되도록 잡고 그리면 지워지는 패턴이 눈에 더 잘 보인다. 또, a,b,c가 등차수열이면 b를 열의 길이로 잡았을 때 좌우 대칭으로 지워지기 때문에 더 편할 것이다.

'조합론 공부' 카테고리의 다른 글

수학적 귀납법 공부 이모저모  (0) 2022.06.06
공부 1  (0) 2022.06.06
profile

알고리즘 블로그

@도훈.

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!