알티수학 쌤 수학 노트 센텀 알티수학 학원 · 부산 센텀 · 해운대

의외의 계산 문제 2025 KJMO 조합 20번 해설 (feat. 반복 시행, 수학적 센스)

지난 주말 9월6일(토) 에 치뤄진 KJMO 의

마지막 문제(조합)를 살펴보겠습니다.

2025 KJMO 는 올해로 7회차에 해당되는데,

KJMO 는 회차 표시는 하지 않고

연도만 표시하는것 같네요.

기존 올림피아드들이 회차와 연도를 섞어쓰다보니

매번 헷갈렸는데,

연도 표기로 단순화하는것도 좋아보입니다.

출제된 문제는 아래와 같습니다.

의외의 계산 문제 2025 KJMO 조합 20번 해설 (feat. 반복 시행, 수학적 센스) — 그림 1

1. 반복 시행?

종종 반복 시행이 포함된 문제들은

불변성(invariance)을 찾고

그것을 활용해서 해결하는 유형이 많습니다.

이 문제를 보고 불변성을 찾아보려고

여러가지 궁리를 해봤는데,

딱히 괜찮은것이 안보이네요. 기껏

매 시행마다 수의 갯수가 2배로 늘어난다.

이것밖에 안보이네요.

혹시, 좋은 것이 보이시면

저에게도 좀 알려주세요..

2. 눈치껏 (수학적 센스)

그러면 설마 직접 계산하라는 말인가?

일단, 문제를 읽고 떠오르는

눈치를 모아보겠습니다.

(1)

허접하지만 찾아낸 불변성

→ 매 시행마다 각 수가 2개가 됨

64개는 금방 도달함.

(2)

문제에서 6회 시행하면 종료되는데,

의외로 시행횟수가 적다.

→ 설마 직접 계산하라는 암시인가?

(3)

초기값 10000이 의외로 상당히 크다.

x+1 은 고만고만한 크기의 숫자이고

1/x 는 0에 근접한 양수를 만든다..

→ 평균을 낼 때, 작은 수는 역할이 미미할듯

(4)

저학년용 경시대회 문제이다.

아마, 6학년도 풀 수 있게 해놨을것이다.

(5)

가장 가까운 정수를 구하라고?

이것도 직접 계산하라는 암시인것 같다.

(6)

답을 숫자로 요구하고 있다.

→ 어차피 어느정도 계산은 해야할 것 같다.

(7)

엘레강트한 불변성은 보이지를 않고

제한시간 내에 답은 내야한다.

출제자는 나한테 왜이러심?

3. NGD 를 결심하기

여러 정황과 촉에 따라 어쩔수 없으니

일단, NGD(노가다)를 해야 할것 같네요.

진흙탕에서 구르는 계산도

막상 해보면 꽤 재미있습니다.

64개를 끝까지 다 적는것은 좀 아닌것 같고,

일단 3번 정도만 해볼께요.

1000010000
\downarrow
10001, 11000010001,\ \frac{1}{10000}
\downarrow
10002, 110001, 1000110000, 1000010002,\ \frac{1}{10001},\ \frac{10001}{10000},\ 10000
\downarrow
 10003, 110002, 1000210001, 10001,\ 10003,\ \frac{1}{10002},\ \frac{10002}{10001},\ 10001,
 2000110000, 1000010001, 10001, 110000\ \frac{20001}{10000},\ \frac{10000}{10001},\ 10001,\ \frac{1}{10000}

4. 분석하기(1)

ngd 를 좀 뛰어보니 새로 떠오르는

눈치는 아래와 같습니다.

(1)

10000 근처의 수를 '큰 수'

0 근처의 수를 '작은 수' 라 하고,

앞 단계 수에 1 을 더해주는 시행을 A

앞 단계 수를 역수 취해주는 시행을 B

라 두고 생각해보면 좋을 것 같다.

(2)

시행의 결과는 아래 네 가지 중에 하나

① 큰 수에 A 를 취하면 큰 수가 됨.

② 큰 수에 B 를 취하면 작은 수가 됨.

③ 작은 수에 A 를 취하면 1 근처의 수가 생김.

④ 작은 수에 B 를 취하면 큰 수가 됨.

여기서, 중요한것이 ③ 인데,

이렇게 생겨난 1 근처의 수를 '어중간한 수'

라고 이름을 지어주자.

(3)

즉, 초기값 10000 에서 시작해서

시행을 하면 만들어지는 수는

큰 수, 작은 수, 어중간한 수의

세 종류가 생긴다.

(4)

6단계에서 생기는 64개의 수가

① 모두 작은 수라 해도 그 합은 1 보다 작다.

② 모두 어중간한 수라 해도 그 합은

(넉넉하게 고려해도) 400 보다 작다.

위의 ①, ② 는 쉽게 증명 가능합니다.

(심심할때 각자 해보세요~)

(5)

문제에서 요구하는 값은

64개의 수의 합을 6400 으로 나눈 수에

가장 가까운 정수이므로,

작은 수와 어중간한 수는 총합에 기여도가

무의미하므로 그냥 없다고 봐도 된다.

아마, 이거 하라고 초기값을 10000으로

매우 큰 값을 준 것으로 예상됨.

(6)

그러면 6회 시행하는 동안

큰 수가 몇 개 만들어지는지만

확인하면 된다.

(7)

어중간한 수는 A, B 를 아무리 적용해도

어중간한 수만 만들어낸다.

(8)

최초 10000 에서 시작해서

생성되는 수가 큰 수가 되려면 적어도

역수를 취하는 B 시행은 짝수번이어야 한다.

(필요조건 #1)

(9)

큰 수에서 B 를 시행한 후 A 를 시행하면

어중간한 수가 되어 버린다.

(10)

따라서, B 시행은 존재한다면

반드시 두 번 연속 일어나야 한다.

(필요조건 #2)

5. 분석하기(2)

이제, 4 에서 찾은 필요조건 두 개를 적용해서

6회 시행 후에 생기는

큰 수의 개수를 구하면 됩니다.

즉, 6회 시행으로 가능한 것은

아래 네 가지만 가능합니다.

① AAAAAA 꼴

② A + A + A + A + BB 꼴

③ A + A + BB + BB 꼴

④ BBBBBB 꼴

6. 계산하기

앞의 네 경우를 계산해봅시다.

① AAAAAA 꼴

1가지

② A + A + A + A + BB 꼴

5!4!=5 가지\frac{5!}{4!}=5\ \text{가지}

(같은것이 있는 순열입니다.)

③ A + A + BB + BB 꼴

4!2!2!=6 가지\frac{4!}{2!2!}=6\ \text{가지}

④ BBBBBB 꼴

1가지

따라서, 큰 수는 총 13개가 나옵니다.

(초등학생은 직접 나열하면 됩니다.)

그러므로 6단계에서

64개의 수의 합 S 는

130000<S130401130000<S\le 130401

이고, 6400으로 나누면

20.3125<S640020.375120.3125<\frac{S}{6400}\le 20.3751\cdots

이므로 답은 20 입니다.

7. 리뷰

수의 감각이 좋은 학생이라면

더 잘 풀었을것 같은 재미있는 문제였습니다.

저는 실제로는 단위원에서의 반전(inversion)과

비슷한 느낌이라 NGD 를 결심한 뒤에는

금방 풀었답니다. 잠시 설명을 드리자면,

1/10000이라는 점은 원점에 거의 붙어있기 때문에,

반전하면 저 멀리 날아갈 '힘'을 가진 상태인데,

+1 평행이동을 시키면 원의 경계인 '1' 근처로

옮겨버리므로 이후에는 힘을 잃게 되죠. 그래서

BB 는 반드시 두 개 연속으로 있어야 합니다.

8. code

심심해서 64개를 생성시켜봤습니다.

결과는 아래와 같아요.

1: 10006

2: 10004

3: 10004

4: 10004

5: 10004

6: 10004

7: 10002

8: 10002

9: 10002

10: 10002

11: 10002

12: 10002

13: 10000

14: 5.00010

15: 4.00010

16: 3.99990

17: 3.00010

18: 3.00010

19: 3.00010

20: 3.00010

21: 3.00010

22: 2.99990

23: 2.49998

24: 2.00010

25: 2.00010

26: 2.00010

27: 2.00010

28: 2.00010

29: 1.99990

30: 1.99990

31: 1.99990

32: 1.99990

33: 1.50002

34: 1.49998

35: 1.33332

36: 1.00010

37: 1.00010

38: 1.00010

39: 1.00010

40: 1.00010

41: 1.00010

42: 1.00010

43: 1.00010

44: 0.99990

45: 0.99990

46: 0.99990

47: 0.99990

48: 0.66668

49: 0.50002

50: 0.49998

51: 0.49998

52: 0.49998

53: 0.49998

54: 0.33334

55: 0.33332

56: 0.24999

57: 9.99900e-5

58: 9.99900e-5

59: 9.99900e-5

60: 9.99700e-5

61: 9.99700e-5

62: 9.99700e-5

63: 9.99700e-5

64: 9.99500e-5

생성된 64개 숫자의 꽤 정확한 총합: 130109.9183601977

이것을 6400으로 나누면 근사값으로

20.329674743780892

가 나옵니다.

#KJMO #불변성 #NGD #조합 #반복시행 #평균 #같은것이있는순열 #1 #2