1.2 Алгоритмизация и программирование C4

advertisement
1.2 Алгоритмизация и программирование
Пример 8 (из демо 2004)
C4
Два игрока играют в следующую игру. Перед ними лежат три кучки камней, в первой из
которых 2, во второй – 3, в третьей – 4 камня. У каждого игрока неограниченно много
камней. Игроки ходят по очереди. Ход состоит в том, что игрок или удваивает число
камней в какой-то куче или добавляет по два камня в каждую из куч. Выигрывает игрок,
после хода которого либо в одной из куч становится не менее 15 камней, либо общее число
камней во всех трех кучах становится не менее 25. Кто выигрывает при безошибочной игре
обоих игроков – игрок, делающий первый ход или игрок, делающий второй ход? Каким
должен быть первый ход выигрывающего игрока? Ответ обоснуйте.
Решение:
Выигрывает первый игрок. Своим первым ходом он должен добавить по два камня в каждую
из кучек. Для доказательства рассмотрим неполное дерево игры, обрывая те ветви полного
дерева, на которых первый игрок неизбежно проигрывает.
Начальное 1-й ход 1-й ход второго игрока
состояние первого
игрока
2,3,4
4,3,4
4,6,4
приводит к выигрышу второго
игрока при любом втором ходе
первого игрока
2,6,4
4,6,4
приводит к выигрышу второго
игрока при любом втором ходе
первого игрока
2,3,8
2,3,16
выигрыш второго игрока
4,5,6
8,5,6
4,10,6
4,5,12
6,7,8
2-й ход первого игрока
16,5,6 выигрыш первого игрока
4,20,6 выигрыш первого игрока
4,5,24 выигрыш первого игрока
6,7,16 выигрыш первого игрока
Из таблицы видно, что при первом ходе (2,3,4)->(4,5,6) первый игрок выигрывает вторым
ходом при любом первом ходе второго игрока, а при любом другом своем первом ходе он
проигрывает при правильной игре второго игрока
Демо 2005
C4
Два игрока играют в следующую игру. Перед ними лежат две кучки камней, в первой из
которых 4, а во второй – 3 камня. У каждого игрока неограниченно много камней.
Игроки ходят по очереди. Ход состоит в том, что игрок или увеличивает в 3 раза число
камней в какой-то куче или добавляет 2 камня в какую-то кучу. Выигрывает игрок, после
хода которого общее число камней в двух кучах становится не менее 24 камней. Кто
выигрывает при безошибочной игре обоих игроков – игрок, делающий первый ход или
игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока?
Ответ обоснуйте.
Решение:
Выигрывает второй игрок. Для доказательства рассмотрим неполное дерево игры.
Начальная
позиция
4,3
1-й ход
первого
игрока
Выигрывающий
ход второго
игрока
Пояснение
6,3
6,5
второй игрок выигрывает после любого
ответа первого игрока, утроив число
камней в самой большой куче
4,5
6,5
-"-
12,3
36,3
выигрыш второго игрока
4, 9
4,27
-"Из таблицы видно, что при любом первом ходе первого игрока у второго игрока имеется
выигрывающий ход.
Демо 2006
С 3 Два игрока играют в следующую игру. Перед ними лежат две кучки камней, в первой
из которых 5, а во второй – 3 камня. У каждого игрока неограниченно много камней.
Игроки ходят по очереди. Ход состоит в том, что игрок или удваивает число камней в какойто куче, или добавляет 4 камня в какую-то кучу. Выигрывает игрок, после хода которого в
одной из куч становится не менее 22 камней. Кто выигрывает при безошибочной игре обоих
игроков – игрок, делающий первый ход, или игрок, делающий второй ход? Как должен
ходить выигрывающий игрок? Ответ обоснуйте.
Выигрывает первый игрок. Своим первым ходом он должен удвоить количество камней во
второй куче. Для доказательства рассмотрим неполное дерево игры после этого хода первого
игрока.
Позиция
после первого
хода
5,6
1-й ход
второго
игрока
Выигрывающий
ход первого игрока
Пояснение
10,6
10,10
Первый игрок выигрывает после любого
ответа второго игрока, удвоив число
камней в самой большой куче
9,6
9,10
-"-
5,10
9,10 или 10,10
-"-
5,12
5,24
Выигрыш первого игрока
Из таблицы видно, что при первом ходе (5,3)->(5,6) первый игрок выигрывает не позже, чем
на третьем ходу при любом ответе второго игрока.
Демо 2007
Два игрока играют в следующую игру. Перед ними лежат две кучки камней, в первой из
которых 3, а во второй – 2 камня. У каждого игрока неограниченно много камней.
Игроки ходят по очереди. Ход состоит в том, что игрок или увеличивает в 3 раза число
камней в какой-то куче, или добавляет 1 камень в какую-то кучу. Выигрывает игрок, после
хода которого общее число камней в двух кучах становится не менее 16 камней. Кто
выигрывает при безошибочной игре – игрок, делающий первый ход, или игрок, делающий
второй ход? Каким должен быть первый ход выигрывающего игрока? Ответ обоснуйте.
C3
Выигрывает второй игрок.
Для доказательства рассмотрим неполное дерево игры, оформленное в виде таблицы, где в
каждой ячейке записаны пары чисел, разделенные запятой. Эти числа соответствуют
количеству камней на каждом этапе игры, в первой и второй кучах соответственно
1 ход
2 ход
3 ход
4 ход
Старто
вая
позиция
I-й игрок
(все
варианты
хода)
3,3
3,2
II-й игрок
(выиг
рыш
ный ход)
I-й игрок
(все
варианты
хода)
II-й игрок
(один
из вариан
тов)
4,3
4,4
9,4
3,12
12,4
27,4
3,36
3,5
3,15
Пояснение
Второй игрок выигрывает на
четвертом ходу, после любого
ответа первого игрока, например,
утроив число камней в самой
большой куче
4,2
4,3
Те же варианты третьего-четвертого ходов
9,2
27,2
Второй игрок выигрывает ответным ходом
3,6
18,3
Второй игрок выигрывает ответным ходом
Таблица содержит все возможные варианты ходов первого игрока. Из неё видно, что при
любом ходе первого игрока у второго имеется ход, приводящий к победе.
Download