본문 바로가기
TMI

간단한 필승 전략 게임

by 오래된미래3 2020. 1. 27.
반응형

 

 

 

 

 

(전략은 더 보기를 클릭하면 볼 수 있어요)

 

(문제 1)

 

갑, 을 두 사람이 바둑돌이 50개 들어있는 바구니에서

 

번갈아가며 바둑돌을 꺼내는 시합을 하고 있다.

 

두 사람은 한 번 꺼낼 때마다 들어있는 바둑돌 개수의 반 이하로만

 

바둑돌을 꺼낼 수 있고, 더 이상 꺼낼 수 없는 사람이 진다고 했을 때,

 

갑의 필승 전략은?

 

(단, 반드시 하나 이상은 꺼내야 한다.)

 

 

더보기

더 이상 꺼낼 수 없으려면 1개가 남아야 하므로

 

1개, 3개, 7개, 15개를 남기면 된다.

 

따라서 갑이 먼저 19개를 꺼내면 된다.

 

 

 

 

 

(문제 2)

 

두 선수가 원탁에 동전을 번갈아 가며 놓는데 동전 위에 동전을 놓을 수 없고,

 

탁자 위에만 놓을 수 있다고 한다.

 

탁자 위에 더 이상 동전을 넣을 수 없는 상태에 다다른 선수가 진다고 할 때

 

항상 이길 수 있는 사람은?

 

더보기

처음 동전을 놓는 선수가 원탁의 중앙에 놓고,

 

그 다음부터는 원탁의 중심을 기준으로 다른 선수가 놓는 위치에

 

대칭되는 곳에 동전을 놓으면 된다.

 

따라서 첫 번째 놓는 선수가 원탁의 중앙에 동전을 놓으면 항상 이길 수 있다.

 

 

 

 

 

 

 

 

 

 

(문제 3)

 

성냥개비 13개, 17개가 쌓여 있는 두 무더기가 있다.

 

A, B 두 사람이 번갈아가며 성냥개비를 1개~4개까지

 

두 무더기 중 한 곳에서 가져간다고 할 때

 

마지막에 가져가는 사람이 이긴다면 누가 필승전략이 있을까?

 

 

더보기

이 문제에서 전략은 양 쪽 무더기의 성냥 수를 같게 만드는 것이다.

 

만약 A가 두 무더기의 숫자를 같게 만든다면

 

B는 반드시 두 숫자를 다르게 만들기 때문이다.

 

결국 B는 한 무더기를 남기고 다른 무더기의 성냥을 전부 가져가게 되고

 

그 다음 A가 나머지를 전부 가져가서 이길 수 있다.

 

따라서 처음 가져가는 사람이 두 무더기의 성냥 수를 같게 만들면 된다.

 

 

 

 

 

 

 

(문제 4)

 

두 명의 학생이 칠판에 번갈아가며 숫자를 쓰는 게임을 하고 있다.

 

각자의 차례에 각 학생은 십의 자리 또는 일의 자리의 숫자 중 하나를

 

더 큰 수로 만들 수 있고, 처음 시작하는 숫자는 01이고 99를 쓰는 사람이 이긴다고 할 때,

 

필승전략은? 예를 들어 01, 07, 47, 87, 88 , 89, 99가 되면 게임이 끝난다.

 

또, 같은 규칙으로 001부터 시작하여 999를 쓰는 사람이 이긴다고 할 때의 필승전략은?

 

 

더보기

처음 숫자를 쓰는 사람이 11을 쓰면 이길 수 있다.

 

즉, 처음에 11을 쓰고 다음 학생이 숫자를 바꾸면

 

또다시 ‘NN’의 꼴로 숫자를 만들면 된다.

 

숫자는 계속 커지므로 결국에는 처음의 학생은 99를 쓸 수 있게 된다.

 

세 자리의 경우처음 학생이 009를 만들고

 

이후 다음 학생이 백의 자리나 십의 자리에 숫자를 바꾸면

 

십의 자리나 백의 자리의 숫자를 똑같이 바꾸어

 

‘NN’의 꼴로 숫자를 만들면 된다.

 

 

 

 

 

 

 

 

(문제 5)

 

테이블 위에 n개의 바둑돌이 놓여 있다.

 

두 선수가 명이 번갈아가며 최소 1개에서 최대 k개의

 

바둑돌을 제거하는 게임을 하려고 한다.

 

마지막에 바둑돌을 제거하는 사람이 이긴다고 할 때,

 

첫 번째 또는 두 번째 선수가 항상 이기기 위해서는

 

n은 어떤 수여야 하는가?

 

 

 

더보기

n이 (k+1)의 배수가 아닐 때 첫 번째 경기자가 승리 전략을 갖고

 

n이 (k+1)의 배수일 때는 두 번째 경기자가 승리 전략을 갖는다.

 

 

n이 (k+1)의 배수가 아닐 때

 

즉, n=(k+1)q+r (0<r<k+1)이면,

 

첫 번째 선수는 처음에 r개의 바둑돌을 제거하고

 

이 후부터는 (k+1)에서 두 번째 선수가 제거하는 바둑돌을 뺀 수만큼만 빼면 된다.

 

 

n이 k+1의 배수라면,

 

두 번째 경기자는 (k+1)에서 첫 번째 경기자가 제거한

 

바둑돌의 수를 뺀 만큼 제거하면 된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글0