Российской Федерации
Московский физико-технический институт
(национальный исследовательский университет)
Заочная физико-техническая школа
ИНФОРМАТИКА и ИКТ
г. Долгопрудный, 2022
2
Составители:
Молчанов Евгений Геннадьевич
Подписано 01.09.22. Формат 60×90 1/16.
Бумага типографская. Печать офсетная.
Усл. печ. л. 1,56. Уч.-изд. л. 1,38.
e-mail: zftsh@mail.mipt.ru
§ 1. Математические игры
Будем называть игру математической, если для неё выполнены сле-
дующие условия:
Условие 1. В игре участвуют два игрока.
Условие 2. Игра заканчиваются выигрышем одного из участников.
Это автоматически означает проигрыш соперника. Иногда в математиче-
ских играх допускают ничью.
Условие 3. В игре участники ходят по очереди и помнят все предыду-
щие ходы.
Условие 4. Игра характеризуется позицией, которая зависит
только от ходов игроков.
Вернёмся к примеру 1. Эта игра не будет являться математической, по-
скольку не будет удовлетворять только условию 4: мы не сможем определить
позицию игры, которая будет зависеть только от хода самих игроков, посколь-
ку игроки обращаются к компьютеру.
Также в математических играх по той же причине не может быть случай-
ных карточных раскладов, игральных кубиков, подкидываний монеток. По-
пробуем же тогда реализовать игру из этого примера, которая является факти-
ческим подкидыванием монетки игроками, без помощи, как монетки, так и
компьютера.
Пример 3. Для решения спора Петя и Вася пишут на листоч-
ках по натуральному числу. Если сумма написанных чисел –
чётная, спор выигрывает Петя, если нечётная – спор выиг-
рывает Вася. Является ли описанная процедура математиче-
ской игрой?
Здесь уже не выполняется условие 3, которое гласило, что игроки должны
ходить по очереди и помнить все предыдущие ходы.
Сделаем небольшую модификацию условий игры, чтобы игра стала мате-
матической, и посмотрим, какая игра из этого получится. Чтобы условие 3 по-
очередности выполнялось, сначала должен походить первый игрок, написать
своё число на бумажке и показать это число всем, включая второго игрока. Кто
из двух игроков будет первым, они между собой должны договориться сами. И
тогда уже второй игрок, зная число, которое написал первый, должен написать
своё число, затем эти два числа будут сложены и сумма проверена на чётность.
Однако, если второй игрок обладает хоть каким-либо интеллектом, он мо-
жет подобрать своё число, чтобы сумма была выигрышной для него чётности.
Суть «подкидывания монетки» от этого полностью теряется, т. к. данная игра
находится под полным контролем второго игрока.
Пример 4. Два человека встречаются и обмениваются закры-
тыми сумками, понимая, что одна из них содержит деньги,
другая — товар. Каждый игрок может уважать сделку и по-
ложить в сумку то, о чём договорились, либо обмануть
партнёра, дав пустую сумку. Является ли эта игра матема-
тической?
Во-первых, эта игра не удовлетворяет условию 2: в условии не определено,
какой игрок выигрывает в каком случае, а какой автоматически при этом про-
5
1
Таким образом, в примере 6 при старте из любой точки кроме точки (10) игроки не
сделают ни одного хода, и немедленно будет объявлен результат.
7
В общем случае может выиграть любой из игроков – для этого его сопернику
достаточно «подыграть». Однако второй игрок может выиграть при любых
ходах первого игрока. Для этого ему нужно брать то же количество камней,
которое брал первый игрок предыдущим ходом, но из другой кучи. После хода
второго игрока количество камней в обеих кучах будет равным. Далее. Первый
игрок возьмёт несколько камней в одной из кучек, тогда после его хода коли-
чество камней в кучках станет неодинаковым, а значит, второй игрок сможет
уравнять количество камней в кучах и передать ход сопернику. Второй игрок
всегда сможет сделать свой ход, а поскольку камней становится все меньше и
меньше, наступит момент, когда один из игроков не сможет сделать ход, и это
будет первый игрок. Таким образом, второй игрок сможет выиграть в данный
игре, как бы ни играл первый.
Выигрышной стратегией назовём набор правил, следуя которым, один из
игроков обязательно выиграет при произвольных ответах соперника.
Аналогично, ничейной стратегией назовём набор правил, следуя которым,
один из игроков обязательно выиграет или сведёт игру к ничьей при произ-
вольных ответах соперника.
Подчеркнём в определении стратегии условие «при произвольных ответах
соперника». Важно понимать, что на месте игрока может оказаться что или кто
угодно, например, компьютер. Нужно уметь отвечать на произвольные ходы
соперника и в любом случае выигрывать.
Как было сказано выше, мы пытались выделить игры, в которых один из
игроков обязательно выиграет при произвольных ответах соперника. Следую-
щая теорема позволяет утверждать, что математические игры и есть искомый
класс игр.
Теорема. В любой математической игре существует либо выигрышная
стратегия одного из игроков, либо ничейная стратегия для обоих игроков.
Идея доказательства этого утверждения в частном случае будет рассмотре-
на при решении задач методом анализа с конца (см. § 3).
С одной стороны, заметим, что данная теорема обобщается на случай игр,
которые теоретически могут продолжаться бесконечно долго. Для этого в
условии теоремы вместо существования ничейной стратегии для обоих игро-
ков нужно потребовать, чтобы каждый игрок имел стратегию, позволяющую
данному игроку не проиграть.
С другой стороны, рассмотрим игры, которые завершаются за конечное ко-
личество ходов выигрышем одного из игроков (и ничьих нет). Согласно тео-
реме, у кого-то из игроков обязательно существует выигрышная стратегия, и
он должен выиграть у своего соперника, как бы ни играл последний. Введём
понятие правильной игры.
Правильной называется игра, в которой каждый из игроков применяет
выигрышную или ничейную стратегию, если она у него есть.
Так, если игроки из примера 2 играют в правильную игру, второй игрок
должен воспользоваться своей выигрышной стратегией (например, дополнять
число до девяти; у него может быть также и иная выигрышная стратегия) и
довести игру до победы.
Таким образом, ответить на вопрос, заданный в самом начале (см.
пример 1), кто выиграет при правильной игре, можно так: необходимо найти
8
2
«+»-позиции иногда называют P-позициями, а «–»-позиции – N-позициями по
первым буквам английских слов «Previous» (предыдущий) и «Nеxt»
(следующий), указывающими, какой из игроков выиграет при старте из этой
позиции – игрок, который пришёл в эту позицию последним ходом, или игрок,
совершающий следующий ход из этой позиции.
10
8 + 8 - - - - - - - +
7 7 -
6 6 -
5 5 -
4 4 -
3 3 -
2 2 -
1 1 -
a b c d e f g h a b c d e f g h
Рис. 1. Рис. 2.
8 - - - - - - - + 8 - - - - - - - +
7 - - - - - - + - 7 - - - - - - + -
6 - - 6 - - - - - + - -
5 - - 5 - - - - + - - -
4 - - 4 - - - + - - - -
3 - - 3 - - + - - - - -
2 - - 2 - + - - - - - -
1 - - 1 + - - - - - - -
a B c d E f g h a b c d e f g H
Рис. 3. Рис. 4.
Зафиксируем общие правила расстановки знаков «+» и «–»:
1) знаком «–» обозначаются позиции, в которых при правильной игре
участник, стартующий из данной позиции, выиграет, и знаком «+» отмечаются
позиции, ведущие к поражению;
2) знак «–» ставится в позиции, из которой можно за один ход прийти в
позицию со знаком «+»;
3) знак «+» ставится в выигрышных позициях, а также в тех позициях,
из которых все возможные ходы ведут только в позиции, уже отмеченные
знаком «–»3.
Таким образом, сначала нужно расставить знаки «+» в выигрышных пози-
циях. На втором этапе нужно отметить знаком «–» те позиции, которые отде-
ляет от выигрышных один ход. На третьем этапе следует просмотреть все по-
зиции и найти «тупиковые», ведущие к положениям, обозначенным знаком
«–». На игровом поле обязательно будет хотя бы одна такая позиция4. Второй
и третий этапы необходимо поочередно повторять до тех пор, пока начальная
позиция ни будет помечена знаком «+» или «–», что и даст ответ на вопрос,
кто выиграет при правильной игре.
3
Недопустимо, чтобы из этой позиции один ход вёл в позицию, обозначенную
знаком «+», а другой – вёл в позицию, ещё не обозначенную ни одним из
знаков.
4
Хотя убедиться в этом непросто, мы предлагаем читателю самостоятельно
подумать, почему это верно.
11
13 + + + + + + + + + + + + + +
12 + + + + + + + + + + + + +
11 + + + + + + + + + + + +
10 + + + + + + + + + + +
5
Хотя таблица должна быть бесконечной (количество камней может быть
сколь угодно большим), достаточно нарисовать таблицу 17 x 17 – случаи,
когда в одной из куч более 16 камней, нас не интересуют, так как все эти
позиции являются выигрышными.
12
9 + + + + + + + + + +
8 + + + + + + + + +
7 + + + + + + + +
6 + + + + + + +
5 + + + + + +
4 + + + + +
3 + + + +
2 + + +
1 + +
0 +
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1-я куча
2. Далее, ставим знак «–» в позиции, которые отделяет от выигрышных
один ход.
По условию, можно либо увеличить одну из кучек в три раза, либо доба-
вить камень в одну из куч, т. е. мы должны поставить знак «–» в позицию
(x, y), если верно одно из условий: x+y+1≥16; x+3y≥16; y+3x≥16.
16 + + + + + + + + + + + + + + + + +
15 - + + + + + + + + + + + + + + + +
14 - - + + + + + + + + + + + + + + +
13 - - - + + + + + + + + + + + + + +
12 - - - - + + + + + + + + + + + + +
11 - - - - - + + + + + + + + + + + +
10 - - - - - - + + + + + + + + + + +
9 - - - - - - - + + + + + + + + + +
2-я куча
8 - - - - - - - - + + + + + + + + +
7 - - - - - - - - - + + + + + + + +
6 - - - - - - - - - - + + + + + + +
5 - - - - - - - - - - + + + + + +
4 - - - - - - - - + + + + +
3 - - - - - - - - + + + +
2 - - - - - - - - - + + +
1 - - - - - - - - - - + +
0 - - - - - - - - - - +
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1-я куча
13
3. После чего, ставим знак «+» в те позиции, из которых все ходы ведут
только в позиции, обозначенные знаком «–». Таковыми будут позиции (0, 5),
(5, 0) и (4, 3), (3, 4).
16 + + + + + + + + + + + + + + + + +
15 - + + + + + + + + + + + + + + + +
14 - - + + + + + + + + + + + + + + +
13 - - - + + + + + + + + + + + + + +
12 - - - - + + + + + + + + + + + + +
11 - - - - - + + + + + + + + + + + +
10 - - - - - - + + + + + + + + + + +
9 - - - - - - - + + + + + + + + + +
2-я куча
8 - - - - - - - - + + + + + + + + +
7 - - - - - - - - - + + + + + + + +
6 - - - - - - - - - - + + + + + + +
5 + - - - - - - - - - - + + + + + +
4 + - - - - - - - - + + + + +
3 + - - - - - - - - + + + +
2 - - - - - - - - - + + +
1 - - - - - - - - - - + +
0 + - - - - - - - - - - +
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1-я куча
4. Знак «–» ставим в те позиции, стартуя из которых можно за один ход
дойти до одной из позиций, отмеченных знаков «+» (поставленных на этапе 3).
16 + + + + + + + + + + + + + + + + +
15 - + + + + + + + + + + + + + + + +
14 - - + + + + + + + + + + + + + + +
13 - - - + + + + + + + + + + + + + +
12 - - - - + + + + + + + + + + + + +
2-я куча
11 - - - - - + + + + + + + + + + + +
10 - - - - - - + + + + + + + + + + +
9 - - - - - - - + + + + + + + + + +
8 - - - - - - - - + + + + + + + + +
7 - - - - - - - - - + + + + + + + +
6 - - - - - - - - - - + + + + + + +
5 + - - - - - - - - - - + + + + + +
14
4 - - - + - - - - - - - - + + + + +
3 - + - - - - - - - - + + + +
2 - - - - - - - - - - + + +
1 - - - - - - - - - - - + +
0 - + - - - - - - - - - - +
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1-я куча
Стартуя из позиций (4, 0), (0, 4), (3, 3), (2, 4), (4, 2), можно попасть в пози-
ции, обозначенные знаком «+», увеличив количество камней в одной из кучек
на единицу. Из позиций (1, 4) и (4, 1) можно прийти в позиции со знаком «+»,
увеличив в три раза количество камней в меньшей куче.
5. Знак «+» ставим в те позиции, из которых все ходы ведут только в пози-
ции, обозначенные знаком «–». На этот раз таковыми будут позиции (2, 3) и
(3, 2).
16 + + + + + + + + + + + + + + + + +
15 - + + + + + + + + + + + + + + + +
14 - - + + + + + + + + + + + + + + +
13 - - - + + + + + + + + + + + + + +
12 - - - - + + + + + + + + + + + + +
11 - - - - - + + + + + + + + + + + +
10 - - - - - - + + + + + + + + + + +
9 - - - - - - - + + + + + + + + + +
2-я куча
8 - - - - - - - - + + + + + + + + +
7 - - - - - - - - - + + + + + + + +
6 - - - - - - - - - - + + + + + + +
5 + - - - - - - - - - - + + + + + +
4 - - - + - - - - - - - - + + + + +
3 + - + - - - - - - - - + + + +
2 + - - - - - - - - - - + + +
1 - - - - - - - - - - - + +
0 - + - - - - - - - - - - +
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1-я куча
В позиции (2, 3) был поставлен знак «+», а это значит, что победит второй
игрок.
При оформлении задачи необходимо указать выигрывающего игрока, запи-
сать его стратегию и показать, что этот игрок победит при любых ответах со-
перника. Если имеется таблица позиций, то стратегия выигрывающего игрока
формулируется простым правилом: делать ходы в позиции, отмеченные
15
(2,3)
Наша цель, в конечном счёте, во все эти позиции поставить знаки «+» и «-».
Чтобы поставить знак «+», нужно быть уверенным, что все ходы из этой пози-
ции ведут в «-»; для того, чтобы поставить знак «-», нужно чтобы хотя бы
один ход из этой позиции вел к «+».
Выше приведённое означает, что если из позиции за один ход можно прий-
ти в позицию с количеством камней, не меньшим 16 (что по условию задачи
равносильно выигрышу), это – позиция, выигрышная для первого игрока, т. е.
позиция «-». В связи с этим знаки «-» можно поставить в позициях (6,3) и (2,9),
умножая количество камней в большей куче на 3, мы получим 6*3+3=21 и
2+9*3=29 камней соответственно, и выиграем.
Мы не сможем такого утверждать для позиций (3,3) и (2,4), поэтому отра-
зим в дереве все позиции, в которые мы можем прийти из них ещё за один ход.
Две из полученных после двух ходов позиций повторяются (это позиция (3,4)).
Можно не делать дубликат позиции (3,4), а провести к ней пути как из пози-
ции (2,4), так и из позиции (3,3). А можно – оставить как есть, что в данном
случае мы и сделаем.
Обозначим знаком «-» позиции, из которых можно дойти за один ход до
выигрышных. Из оставшихся позиций продолжаем дерево дальше позициями,
в которые можно попасть за три хода.
17
(2,3)
(2,3)
перь, посмотрим на позиции (3,4) и (4,3). Все ходы в этих позициях ведут в
позиции со знаком «-», т. е. в позиции, проигрышные для пришедшего в них
игрока (и выигрышные для начинающего с них игрока). Поэтому, начинаю-
щий из такой позиции при правильной игре проиграет – это позиции «+».
После этого, отметим знаком «-» позиции (3,3) и (2,4) уровнем выше как
позиции, из которых существует хотя бы один ход в позицию, отмеченную
знаком «+». И, наконец, позицию (2,3) отметим знаком «+» как позицию, все
ходы из которой ведут в позиции со знаком «-».
Таким образом, в позиции (2,3) стоит знак «+»6, а это означает, что в дан-
ной игре выиграет второй игрок. Его стратегия формулируется тем же прави-
лом, что и ранее: делать ходы в позиции, отмеченные знаком «+». Стратегия
выигрывающего игрока в явном виде («образец оформления примера») уже
была описана ранее. Аналогично анализу с конца обратим внимание, что важ-
но построить дерево позиций до конца – пропуск любой, даже самой малень-
кой, ветви может существенно поменять всю расстановку знаков в вершинах
дерева существенно поменять всю расстановку знаков в вершинах дерева и
даже привести к тому, что победит другой игрок. Причём последнее не являет-
ся редкостью.
Отдельно отметим, что хотя «анализ с конца» и «дерево игры» являются
различными вариациями одной и той же идеи, в некоторых случаях быстрее
действовать одним методом, а в некоторых – другим. Так, если в игре легко
отобразить схематично всё множество позиций (например, на клетчатом ли-
сте), с другой стороны, количество ходов до выигрыша может быть довольно
большим (см. пример 9), гораздо легче действовать методом «анализ с конца».
В примере 10 решения обоими методами примерно идентичны по трудозатра-
там.
Однако, если известно, что игра всегда заканчивается за малое количество
ходов – логичнее нарисовать дерево игры. Более того, если множество пози-
ций сложно или невозможно каким-либо образом изобразить схематически
(например, если не две кучи камней, а три кучи) – «анализ с конца» вообще
малоприменим – нужно рисовать дерево игры или вообще решать задачу ме-
тодом «удачный ход».
6
Поскольку данное дерево игры заполнялось знаками по тем же правилам, что
и таблица позиций, знаки «+» и «-» в позициях, отмеченных на дереве и в
таблице позиций ранее, должны совпадать.
19
(2,3)
+
___________________________
7
Если в условии явно просят объяснить, откуда возникают вышеуказанные позиции
и почему других таких позиций нет (это встречено автором в демоверсии ЕГЭ 2015),
желательно выписать возникающие неравенства и их решить. Иначе в случае сильно
строгой проверки можно недосчитаться первичных баллов на пустом месте. Так, в слу-
чае хода «умножить кучу с чётных количеством камней на 1,5» нужна система условий,
состоящая из 1) неравенства x 31 (невыигрышная априори); 2) неравенства 1,5 x 31
(можно дойти за 1 ход до выигрышной) и 3) x чётно.
21
П 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
о
з
и
ц
и
я
З ? ? ? ? -1 ? -1 ? -1 -1 -1 -1 -1 + +
н
а
к
Теперь для каждой из отмеченных «?» позиций проверим условие, что все
допустимые ходы идут в нарисованное множество минусовых позиций.
(16), (18), (20) – ход «+1» противоречит условию выше;
(21) – ход «+4» противоречит условию выше;
(23), (25) – подходят. Таким образом (23), (25) – являются позициями, в ко-
торых второй игрок выиграет за один ход. В этих позициях будет стоять знак
«+» как в позициях, откуда все ходы идут в позиции со знаком «-1».
П 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
о
з
и
ц
и
я
З – – –1 + –1 –1
н + –1 –1 –1 –1 + +
а
к
Теперь, перейдём к пункту В). Перед этим сотрём все знаки «?», поскольку
в позициях, отличных от (23) и (25) нам неизвестно, существует ли хотя бы
один ход, ведущий в минусовую позицию.
Первый игрок выиграет вторым ходом тогда и только тогда, когда не может
выиграть за ход, но может прийти в позицию, из которой он, как второй игрок,
выиграет первым ходом. Эти позиции уже найдены – это позиции (23) и (25).
Таким образом, нас интересуют все позиции, из которых можно за ход дойти
до (23) и (25). Это позиции (19), (21), (22), (24). Однако из позиций (22) и (24)
(в данный момент уже отмечены знаком «-»), можно выиграть за ход, а нас
интересуют в данном пункте позиции, где за ход выиграть нельзя. Таким обра-
зом, в пункте В). Ответ – позиции (19) и (21).
Наконец, в пункте Г) нас интересуют позиции, в которых выиграет второй
игрок, т. е. позиции «+». Отметим отличие пункта Г) от пункта Б). В пункте Г)
нас интересуют позиции, в которых второй игрок выиграет, но он не сможет
выиграть первым ходом, как бы не ходил его соперник. В пункте Б) же нас
интересуют позиции, в которых второй игрок сможет, наоборот, выиграть пер-
вым ходом, как бы не ходил его соперник. Позиции «+», где в зависимости от
хода первого игрока второй сможет выиграть как первым своим ходом, так и
не первым, нас не интересуют ни в пункте Б), ни в пункте Г).
Для решения пункта Г) просто продолжим заполнять согласно правилам
таблицу позиций.
22
П 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
о
з
и
ц
и
я
З - + - - + – + – –1 + –1 –1
н + –1 –1 –1 –1 + +
а
к