А. Шень

Игры и стратегии с точки зрения математики

Москва

Издательство МЦНМО 2018

А. Шень

Игры и стратегии с точки зрения математики

Издание пятое, исправленное и дополненное

Москва Издательство МЦНМО 2018

УДК 519.83 ББК 22.1 Ш47

Шень А.

Ш47 Игры и стратегии с точки зрения математики. — 5-е изд., исправленное и дополненное. — М.: МЦНМО, 2018. — 56 с. : ил. ISBN 978-5-4439-2776-3

Хотите верьте, хотите нет — но либо в шахматах у белых есть гарантированный выигрыш, либо у чёрных есть гарантированная ничья. В этой брошюре рассказывается, что это значит, почему это верно (хотя и бесполезно в шахматной практике!), какие ещё бывают подобные игры и как их можно математически анализировать.

Предыдущее издание книги вышло в 2016 г.

ББК 22.1

Оригинал-макет предоставлен автором.

Электронная версия книги является свободно распространяемой и доступна по адресу ftp://ftp.mccme.ru/users/shen/games.zip

В оформлении обложки использована акварель на пергаменте (ок. 1320) со страницы commons.wikimedia.org/wiki/Image :Meister_der_Manessischen_Liederhandschrift_004.jpg

Акварель входит в Manessische Liederhandschrift (Szene: Schachspiel), хранится в библиотеке Гейдельберга, входит в The Yorck Project: 10.000 Meisterwerke der Malerei, DVD-ROM, 2003, ISBN 3936122202, distributed by DIRECTMEDIA Publishing GmbH и предоставлена для Wikimedia Common (директор издательства и The Yorck Project, Erwin Jurschitza, говоря о предоставленных файлах, пишет, что Jedes einzelne Bild ist Public Domain, см. http://mail.wikipedia.org/pipermail/wikide-1/2005-April/012208.html)

Рецензент и редактор Николай Александрович Яковлев

Научно-популярное издание

Александр Шень Игры и стратегии с точки зрения математики

Подписано в печать 25.06.2018 г. Формат 60 х 90 Vl6- Бумага офсетная. Печать офсетная. Печ. л. 3,5. Тираж 2000 экз. Заказ №

Издательство Московского центра непрерывного математического образования 119002, Москва, Большой Власьевский пер., 11. Тел. (499) 241-08-04.

Отпечатано в типографии ООО «Принт сервис групп», тел./факс: (499) 785-05-18, e-mail: 3565264@mail.ru, www.printsg.ru 105187, г. Москва, Борисовская ул., д. 14, стр. 6.

ISBN 978-5-4439-2776-3

© Шень А., 2007, 2018

1. Введение

Спросите у знакомого шахматиста, кто выигрывает в шахматах — белые или чёрные. «Что за глупый вопрос, — ответит он вам — смотря кто играет за белых и за чёрных и как сложится игра.» Ну а если оба играют наилучшим образом, что тогда? Оказывается, что поставленный таким образом вопрос имеет вполне точный смысл. Правда, ответ на него неизвестен. Но можно доказать, что имеет место ровно одна из трёх возможностей:

• у белых есть способ, позволяющий им гарантированно выиграть, как бы ни играли чёрные;

• у чёрных есть способ, позволяющий им гарантированно выиграть, как бы ни играли белые;

• у белых есть способ, позволяющий им гарантированно не проиграть (=выиграть или свести игру вничью), и одновременно у чёрных есть способ, позволяющий им гарантированно не проиграть.

Чтобы доказать это, даже не надо быть шахматистом. Как мы увидим, подобные утверждения верны для большого класса игр, называемого «конечные игры с полной информацией». Мы разберём много примеров таких игр; в некоторых случаях нам удастся выяснить, какой из случаев имеет место, и даже указать наилучший способ игры (или, как говорят, стратегию).

Советуем не спешить читать объяснения, приводимые после описания игры. Сначала попробуйте разобраться с этой игрой сами!

2. Несколько простых примеров

[1] На столе лежит 25 спичек. Играющие по очереди могут взять от одной до четырёх спичек. Кто не может сделать ход (спичек не осталось), проигрывает.

Другими словами, выигрывает взявший последнюю спичку.

В этой игре второй игрок может гарантировать себе выигрыш. Для этого он должен дополнять ход первого до пяти спичек (если первый взял одну, второй берёт четыре и т. п.). Тогда после хода второго сначала останется 20 спичек, затем 15, затем 10, 5 и, наконец, 0 — первый проиграл.

[2] А что будет, если изначально не 25 спичек, а 24?

В этом случае выигрывает первый: он должен взять четыре спички, останется 20, а затем дополнять ход противника до 5 спичек.

Легко понять, что будет в общем случае, для N спичек. Если N делится на 5 без остатка, то второй может гарантировать себе выигрыш, дополняя ход противника до 5. Если же N не делится на 5 без остатка, то выигрывает первый. Он должен сначала взять столько спичек, каков остаток, а потом дополнять ход противника до 5.

[3] На столе лежат две кучки спичек: в одной 10, в другой 7. Игроки ходят по очереди. За один ход можно взять любое число спичек (1,2,3,...) из одной из кучек (по выбору игрока). Кто не может сделать ход (спичек не осталось), проигрывает.

Здесь первый игрок может гарантировать выигрыш, если сначала уравняет кучки, взяв три спички из большей. После этого он должен повторять ходы второго, но брать из другой кучки, восстанавливая нарушенное равенство.

[4] Что будет в этой игре, если изначально в одной кучке m спичек, а в другой ni

Если m Ф п, то выигрывает первый: он должен своим ходом уравнять кучки, а потом поддерживать равенство. Если же m = п, то игроки меняются местами: второй может восстанавливать равенство после нарушения его первым, тем самым обеспечив себе выигрыш.

[5] Шоколадка представляет собой прямоугольник 5x8, разделённый углублениями на 40 квадратиков. Двое по очереди разламывают её на части по углублениям: за один ход можно разломить любой из кусков (больший одного квадратика) на два. Кто не может сделать хода (все куски уже разломаны), проигрывает.

В этой игре — удивительным образом — не имеет значения, как ходить. Что бы ни делали игроки, шоколадку можно разломить ровно 39 раз, не больше и не меньше. (Не верите? Посчитайте ходы при разных вариантах разломов.)

Дело в том, что при каждом разломе число кусков увеличивается ровно на 1. В начале игры был 1 кусок (вся шоколадка), а в конце 40 кусков (квадратиков). Значит, всего было 39 ходов. Первый игрок при этом делал нечётные ходы (с номерами 1,3,5,..., 39). Поэтому он сделал последний ход, то есть выиграл.

Выигрышу первого игрока не может помешать не только второй игрок, но даже и сам первый (в отличие, скажем, от шахмат, где неудачный ход может быть роковым).

6 Двое игроков пишут двадцатизначное число слева направо, по очереди дописывая по одной цифре. Первый игрок выигрывает, если полученное число не делится на 7, второй — если делится.

Последнюю (крайнюю правую) цифру пишет второй игрок. До этого момента он может выбирать любые цифры. В последний момент он должен выбрать среди десяти возможностей ту, при которой полученное число разделится на 7. (Среди десяти последовательных натуральных чисел всегда есть хотя бы одно, делящееся на 7, а иногда даже два.)

[7] Что будет, если в предыдущей игре заменить 7 на 13?

В этом случае прежнее рассуждение не годится: среди десяти последовательных чисел может не быть ни одного делящегося на 13. И действительно, ситуация меняется и первый может гарантировать выигрыш, правильно выбрав предпоследнюю цифру. Выбирая предпоследнюю цифру, первый выбирает десяток внутри сотни подряд идущих чисел; второй затем выбирает одно число из этого десятка. Первый выиграет, если в выбранном им десятке не будет ни одного числа, делящегося на 13. Такой десяток всегда найдётся. Ведь если бы во всех десяти подряд идущих десятках нашлось по числу, делящемуся на 13, то всего таких чисел было бы как минимум десять среди ста идущих подряд, чего быть не может.

Следующие три игры попробуйте проанализировать сами (и выяснить, кто выигрывает при правильной игре).

8 Первый называет целое число, затем второй называет ещё одно. Если сумма чисел четна, выигрывает первый, если нечётна — второй.

[9] (Продолжение) Тот же вопрос, если вместо суммы берут произведение чисел.

10 Дан выпуклый п -угольник. Игроки по очереди проводят в нём диагонали, не пересекая проведённых ранее (во внутренних точках, общий конец диагонали иметь могут). Тот, кто не может сделать ход, проигрывает. (Это случится, когда многоугольник будет разрезан на треугольники.)

3. Классификация позиций

Мы разобрали несколько примеров игр. В каждом из них мы указали, кто из игроков может гарантировать себе выигрыш и как для этого он должен играть. Но как до этого догадаться? Иногда это удаётся сделать, проанализировав игру «с конца». Для примера рассмотрим самую первую игру, но немного изменим условие.

11 На столе лежит 25 спичек. Играющие по очереди могут взять 1, 2 или 4 спички. Кто не может сделать ход (спичек не осталось), проигрывает.

Разница в том, что брать три спички нельзя, так что правило «дополнять ход противника до пяти спичек» теперь не годится (если противник взял две). Чтобы проанализировать игру, изобразим возможные варианты (сколько осталось спичек) кружочками, а возможные ходы — стрелками. (На рисунке 1 поместились лишь небольшие количества спичек, но картинку можно продолжить влево.)

Рис. 1. Граф позиций для игры со спичками.

Из каждого кружочка идут три стрелки, соответствующие трём возможным ходам (прямая стрелка — взять одну спичку, кривые — взять две или четыре спички). Скажем, если у нас 9 спичек (левый кружочек), то после нашего хода может остаться 8, 7 или 5 спичек, и это изображено стрелками.

Такие картинки математики называют ориентированными графами; кружочки называются вершинами графа, а стрелки — рёбрами (или дугами) графа.

Будем анализировать ситуацию справа налево, глядя на картинку.

• Если к нашему ходу спичек не осталось, то мы проиграли.

• Если к нашему ходу осталась одна спичка, то мы можем выиграть, взяв её — противник останется без спичек и проиграет.

• То же самое, если осталось две или четыре спички — мы выигрываем в один ход.

• А что будет, если нам осталось три спички? Взять все три по правилам мы не можем. Можно взять одну или две. В этом случае противнику останется две или одна, и он выиграет (взяв их на своём ходу). Поэтому три спички — проигрышная позиция (для того, чей сейчас ход).

• Про четыре спички мы уже говорили. Если осталось пять спичек, то мы можем взять две и оставить противнику три, передав ему ход в проигрышной позиции. Значит, пять спичек — выигрышная позиция.

• Если осталось шесть спичек, то можно взять одну, две или четыре. Тогда у противника будет 5, 4 или 2 спички. Все эти позиции для него выигрышные, так что шесть спичек — проигрышная позиция.

• Раз шесть спичек — проигрышная позиция, то 7, 8 и 10 — выигрышные. В самом деле, взяв 1, 2 или 4 спички, мы оставим противнику 6.

• Девять спичек — проигрышная позиция: при любом ходе противник оказывается в выигрышной позиции с 8, 7 или 5 спичками.

Всё это показано на рисунке 2.

Рис. 2. Выигрышные и проигрышные позиции.

Легко сообразить, что дальше всё будет повторяться с периодом 3: позиции, где число спичек делится на 3, будут проигрышными (для того, кто в них оказался), а где не делится — выигрышными. В частности, в игре с 25 спичками, с которой мы начинали, выигрывает первый игрок.

Как он должен при этом играть? Он должен ставить противника в проигрышную позицию, то есть брать столько спичек, чтобы осталось кратное трём количество. (Заметим, что при этом он может никогда не брать четыре спички, достаточно брать одну или две.)

Тем же способом можно проанализировать и другие игры. Разберём ещё один пример.

12 В одной из клеток шахматной доски стоит «односторонняя ладья», которая может двигаться влево или вниз. Двое игроков ходят по очереди, сдвигая ладью влево или вниз на любое число клеток (но не менее одной); кто не может сделать ход, проигрывает.

Здесь удобно записывать буквы В и П (для выигрышных и проигрышных позиций) прямо на доске. Позиция в левом нижнем углу проигрышная (наша очередь хода, а ходить некуда). Остальные позиции на первой горизонтали и первой вертикали выигрышные, так как из них можно подвинуть ладью в угол и поставить противника в проигрышную позицию (рис. 3).

Далее замечаем, что позиция Ь2 (вторая вертикаль, вторая горизонталь) проигрышная, поскольку любой ход из неё (вниз или влево) даёт противнику выигрышную позицию. А другие позиции на этой горизонтали и этой вертикали выигрышные, так как из них можно перевести ладью на Ь2 (рис. 4).

Далее всё повторяется: позиция сЗ (третья вертикаль, третья горизонталь) проигрышная, так как любой ход (вниз или влево) ведёт к выиг-

Рис. 3. Односторонняя ладья: начало анализа.

Рис. 4. Односторонняя ладья: продолжение.

Рис. 5. Односторонняя ладья: окончание.

рышной для противника позиции. Остальные позиции на этой горизонтали и этой вертикали выигрышные. Позиция d4 снова проигрышная, остальные выигрышные, и так далее (рис. 5).

Приходим к следующему результату. Если ладья стоит на диагонали, то выигрывает второй. Для этого он должен возвращать ладью на диагональ, когда первый её сдвигает с диагонали. Если же ладья не стоит на диагонали, то выигрывает первый — для этого первым ходом он должен поставить ладью на диагональ, а потом возвращать её туда.

Наверно, вы уже заметили, что эта игра по существу совпадает с одной из уже рассмотренных — а именно, игрой с двумя кучками спичек. Позиция (m, п) (в одной кучке m спичек, а в другой п) соответствует клетке в m-ой вертикали и я-ой горизонтали (если начинать счёт с нуля), см. рис. 6. Математики сказали бы, что эти две игры изоморфны.

Рис. 6. Изоморфизм игр

Взятие спичек из одной кучи уменьшает первую координату и сдвигает ладью влево; взятие спичек из другой кучи сдвигает ладью вниз. В угловой клетке (0,0) ладья не может сделать хода (спичек не осталось ни в одной из кучек).

Чтобы выиграть, надо возвращать ладью на диагональ; на языке спичек — уравнивать число спичек в обеих кучках (как мы и говорили).

В этом случае выигрышная стратегия нам по существу уже была известна. Рассмотрим чуть более сложный пример, изменив немного правила игры.

13 На столе лежат две кучки спичек: в одной 10, в другой 7. Игроки ходят по очереди. За один ход можно взять одну спичку из одной из кучек (по выбору игрока) или взять по спичке из двух сразу. Кто не может сделать ход (спичек не осталось), проигрывает.

Удобно переформулировать эту игру так: на доске стоит «односторонний король», который может сдвигаться на одну клетку влево, вниз или влево-вниз по диагонали. Двое игроков ходят по очереди; кто не может сделать ход (король в левом нижнем углу), проигрывает.

После этого легко заполнить таблицу, начиная с левого нижнего угла. Угол — проигрышная позиция; вокруг него три выигрышные (можно пойти в угол, поставив противника в проигрышное положение). Позиции (2,0) и (0,2) — проигрышные, поскольку из них любой ход ведёт в выигрышную позицию. Около каждой из них есть три выигрышные. Позиция (2,2) проигрышная, около неё три выигрышные. И так далее: проигрышные позиции повторяются по горизонтали и по вертикали с периодом 2 (рис. 7).

Рис. 7. Односторонний король.

Переходя обратно к спичкам, можно сказать так: если перед нашим ходом в обеих кучках по чётному числу спичек, то позиция проигрышная,

а если хотя бы в одной позиции нечётное — то выигрышная, и ходить надо так, чтобы противнику остались две чётные кучки.

В разобранных примерах мы следовали таким правилам:

• если из позиции х можно попасть в проигрышную, то позиция X — выигрышная;

• если все ходы из позиции х ведут в выигрышные позиции, то позиция X — проигрышная;

• выигрышная стратегия:

ставить противника в проигрышную позицию.

Вот ещё несколько примеров игр, которые можно проанализировать с помощью этих правил.

[14] На доске написано число 60. За один ход разрешается уменьшить число на любой из его целых положительных делителей (в том числе на единицу или на само это число). Если при этом получается нуль, игрок проиграл.

[Указание. Начав составлять таблицу выигрышных и проигрышных позиций, легко угадать закономерность и доказать её.]

15 Двое играют в такую игру. Первый называет любое натуральное число от 2 до 9, второй умножает его на любое натуральное число от 2 до 9, первый умножает результат на любое натуральное число от 2 до 9 и т. д. Выигрывает тот, у кого впервые получится число больше 1000.

16 На столе лежат две кучки спичек. Игроки ходят по очереди. За один ход можно взять любое число спичек (1,2,3,...) из одной из кучек (по выбору игрока). При этом не разрешается оставлять поровну спичек в кучках (за исключением случая, когда спичек не осталось вовсе). Кто не может сделать ход, проигрывает.

[Указание. Эта игру можно свести к игре с односторонней ладьёй, в которой клетки на биссектрисе угла объявлены выигрышными. Ответ: проигрышными являются позиции (0,0), а также (2/с + 1,2/с + 2) и (2/с + 2,2/с + 1) при/с = 0,1,2,...]

[17] Часы показывают полдень. Двое играющих по очереди переводят часовую стрелку на два или три часа вперёд. Если после хода игрока стрелка указывает на 6, он выиграл.

[18] Есть две кучки конфет по m и п конфет (числа тип — целые положительные). Игроки ходят по очереди. Делая ход, игрок съедает все конфеты из одной кучки, а другую кучку делит на две (по своему выбору; в каждой из них должно остаться хотя бы по конфете). Если сделать ход нельзя (это бывает, когда в обеих кучках по одной конфете), он проиграл.

4. Игра «ним»

В этом разделе мы рассмотрим пример игры, для анализа которой требуется двоичная система счисления. (Этот пример довольно сложен, и в дальнейшем почти не используется, так что если будет непонятно, можно его пропустить.) Игра эта называется обычно «ним».

19 На столе лежат несколько кучек спичек. Двое играющих поочерёдно берут спички из этих кучек. За один ход можно взять любое число спичек, но только из одной кучки. Кто не может сделать ход, проигрывает (другими словами, выигрывает тот, кто заберёт последнюю спичку).

Если кучка одна, то первый игрок сразу же выигрывает, забрав все спички. Если кучек две, то эту игру мы уже разбирали. Оказалось, что при равном числе спичек в кучках выигрывает второй игрок, а при неравном — первый.

Что же будет с тремя кучками? Кое-что можно заметить сразу. Скажем, если среди кучек есть две равные, то выигрывает первый игрок. Ему достаточно забрать полностью третью кучку и оставить противнику две равные (а это, как мы знаем, проигрышная позиция). Но в общем случае дело обстоит сложнее.

Игра с тремя кучками соответствует движению «трёхмерной ладьи», и можно составить трёхмерную таблицу выигрышных и проигрышных позиций. Закономерности в этой таблице заметить не так просто — но если вам это удастся сделать, не заглядывая в приведённый дальше ответ, будет здорово!

Чтобы разобраться с игрой «ним», будем записывать количество спичек в двоичной системе счисления. В ней число раскладывается не по степеням десятки, как в обычной десятичной, а по степеням двойки, в соответствии с таблицей:

число (десятичное)

двоичная запись

разложение

0 1 2 3 4 5 6 7 8 9 10

0 1 10 11 100 101 110 111 1000 1001 1010

1

2

2+1

4

4 +1

4+2

4+2+1

8

8 +1 8 +2

Допустим, мы хотим узнать, является ли позиция из трёх кучек, в которых 3, 5 и 7 спичек, выигрышной. Запишем числа 3, 5 и 7 друг под другом в двоичной системе (выравнивая их по правому краю, как при сложении в столбик):

Теперь надо подсчитать количество единиц в каждом столбце. Если все эти количества четны, то позиция проигрышная; если есть столбец с нечётным числом единиц — позиция выигрышная. В данном случае есть один такой столбец (самый правый), так что правило говорит, что позиция выигрышная.

Это правило годится для любого количества кучек. (Можно проверить его для частного случая двух кучек. Чётность числа единиц в каждом столбце означает, что там либо два нуля, либо две единицы. Другими словами, проигрышными будут те позиции, где обе двоичных записи одинаковы — что согласуется с уже известным нам ответом.)

Догадаться до этого правила непросто. Но доказать его, зная формулировку заранее, уже не так сложно. Для удобства введём такую терминологию. Будем называть позицию чётной, если количество единиц во

всех столбцах четно, и нечётной, если есть столбец с нечётным числом единиц. Нам надо доказать, что чётные позиции проигрышные, а нечётные — выигрышные. Для этого сформулируем и докажем две леммы.

Лемма 1. Сделав любой ход в чётной позиции, мы получаем нечётную позицию.

В самом деле, ход изменяет одно из чисел, оставляя остальные числа неизменными. В изменённом числе есть изменённый разряд, и если раньше в его столбце было чётное число единиц, то теперь — нечётное.

Лемма 2. В нечётной позиции всегда можно сделать ход, дающий чётную позицию.

В нечётной позиции есть один или несколько нечётных столбцов. Рассмотрим самый левый из них. В нём нечётное число единиц, и, следовательно, есть хотя бы одна единица. Выберем одну из таких единиц. Заменим её на нуль, сделав столбец чётным. Если справа ещё остались нечётные столбцы, поменяем цифры (в той строке, которую мы уже начали менять) в этих столбцах и сделаем их чётными. Заметим, что изменённое число уменьшилось, так как мы заменили в нём единицу на нуль (что не перевешивается никакими изменениями в младших разрядах).

Леммы 1 и 2 показывают, что чётные и нечётные позиции подчиняются тому же правилу, что проигрышные и выигрышные (проигрышные позиции — те, из которых можно перейти только в выигрышные, а выигрышные — те, из которых можно перейти в проигрышную). Отсюда следует, что если мы будем составлять таблицу выигрышных и проигрышных позиций «с конца» (в порядке возрастания общего числа камней), а также таблицу чётных и нечётных позиций, то они будут заполняться по одним и тем же правилам, и потому будут совпадать. (Первым шагом при таком построении будет позиция, где камней нет ни в одной кучке. Она является одновременно чётной и проигрышной.) Что и требовалось доказать.

Это правило позволяет описать выигрышную стратегию для игры «ним»: надо ставить противника в чётную (то есть проигрышную) позицию. Например, если в начале игры имеется 3, 5 и 7 камней, то можно забрать один камень из какой-либо кучки, получив чётную позицию, например, 3, 5, 6. После хода противника эта позиция станет нечётной, и надо сделать ход, превращающий её в чётную. И так далее до выигрыша.

5. Симметрия

Иногда удаётся придумать выигрышную стратегию, не проводя полного анализа игры (который может быть затруднительным, особенно если число позиций в игре велико). В некоторых играх такая стратегия основана на симметрии (мы с этим уже сталкивались, рассматривая игру с двумя кучками спичек).

20 Двое игроков кладут одинаковые круглые монеты на прямоугольный стол; монеты могут свешиваться за край (но не должны падать) и не могут перекрываться. Кто не может положить монету, проигрывает. (Сдвигать ранее положенные монеты нельзя.)

В этой игре первый игрок может выиграть, положив свою монету в центр стола, а затем повторяя ходы второго симметрично относительно центра. (Симметрия относительно точки — поворот вокруг неё на 180°.) Если второму игроку удалось положить монету на пустое место так, что она не упала, то есть и пустое симметричное место, куда тоже можно положить монету (и она тоже не упадёт). И так далее.

Это рассуждение кажется совсем простым, но в нём есть тонкий момент. Представим себе, что кто-то объясняет нам, что в этой игре есть выигрышная стратегия не для первого, а для второго. И состоит она в том, что второй должен класть монеты симметрично ходам первого (относительно центра стола). Что в этих объяснениях неверно?

Дело в том, что симметричное положение монеты может перекрываться с исходным, и уже положенная монета может мешать положить симметричную. (Именно это происходит, когда монету кладут в центр стола.) Так что наше первоначальное рассуждение использует следующий геометрически очевидный факт: если круг не содержит некоторой точки, то он не пересекается с симметричным ему (относительно этой точки) кругом.

В отличие от ранее рассмотренных игр, в игре с монетами число позиций бесконечно (монету можно положить на стол бесконечно многими способами). В следующей игре та же идея симметрии применяется в более знакомой ситуации (с конечным числом позиций).

21 На квадратную доску 8x8 двое по очереди ставят коней на поля, не находящиеся под боем ранее поставленных (все равно кем) коней. Кто выигрывает при правильной игре — первый или второй?

Решение совсем простое: второй игрок выиграет, если будет ставить коней симметрично относительно центра доски.

Другими словами, позиции, в которых кони делятся на пары симметричных, являются проигрышными. Если в такой позиции игрок ставит коня на пустое место, то и симметричное ему место пусто. Более того, если поставленный конь не попал под бой, то и симметричный под бой не попадёт.

Последнее утверждение основано на том, что конь не может побить клетку, симметричную той, где он стоит (хотя бы потому, что она того же цвета, а конь бьёт только клетки другого цвета).

В этой задаче можно вместо центральной симметрии использовать осевую (относительно средней линии доски). (Почему это возможно? И почему этого нельзя было делать в предыдущей задаче?)

Вот ещё один пример игры, где полезны соображения симметрии.

22 В строчку написано несколько минусов. Два игрока по очереди переправляют один или два соседних минуса на плюс; выигрывает переправивший последний минус. Кто выигрывает при правильной игре: начинающий или его партнёр?

В этой игре выигрывает первый игрок, независимо от числа минусов в строке. Для этого он должен переправить на плюс средний минус (если минусов нечётное число и средний есть) или два средних минуса (если минусов чётное число). После этого игра разбивается на две независимые части, и остаётся лишь повторять ходы противника в другой части, поддерживая симметрию.

К замечанию о двух независимых играх мы ещё вернёмся в разделе 11.

23 Рассмотрите вариант предыдущей игры, в котором минусы написаны не в строчку, а стоят по кругу (и исправлять можно один или два стоящих рядом минуса).

6. Выигрышные стратегии: разное

Рассмотрим несколько игр, в которых можно указать выигрышную стратегию, не используя соображений симметрии.

24 На шахматной доске 1000 х 1000 стоит белый король и 500 чёрных ладей. Белые и чёрные по очереди делают по одному ходу (белые —

королём, чёрные — одной из ладей по своему выбору). Докажите, что белый король всегда может встать под бой одной из чёрных ладей (как бы ни играли чёрные и каковы бы ни были начальная позиция и очередь хода).

(Пояснение: как только белый король оказывается под боем чёрной ладьи, игра заканчивается. Естественно, что правило шахмат, запрещающее ходить «под шах», отменяется.)

Выигрышная стратегия для короля в этой игре состоит в том, чтобы пойти в какой-либо угол доски, а затем пройти по диагонали из этого угла в противоположный. При этом даже не надо смотреть на то, как ходят чёрные — мы докажем, что независимо от этого в один из моментов король окажется под боем чёрной ладьи.

Необходимо только одно уточнение: если король хочет сделать ход по диагонали, а в этой клетке стоит ладья, то съедать ладью не надо, а надо встать под бой этой ладьи, пойдя в соседнюю клетку. (Ходам по горизонтали или вертикали ладьи помешать не могут: если одна из них стоит в соседней клетке, то король уже под боем и игра закончена.)

Осталось доказать, что на пути из угла в противоположный король обязательно попадёт под бой одной из ладей. В самом деле, он на этом пути сделает 999 ходов, которые перемежаются 998 ходами противника. Поскольку ладей 500, то по крайней мере одна ладья за это время сделала не более одного хода. Это значит, что она могла сдвинуться только по вертикали или только по горизонтали. В первом случае она всё время била эту самую вертикаль, а король-то её пересёк! (Аналогично во втором случае с горизонталью.)

25 Двое играют в крестики-нолики на бесконечной клетчатой бумаге по таким правилам: первый ставит два крестика, второй — нолик, первый — снова два крестика, второй — нолик и т. д. Первый выигрывает, когда на одной вертикали или горизонтали стоит рядом 100 крестиков. Докажите, что первый всегда может добиться победы.

Отметим, что в отличие от предыдущих игр эта игра (как и две следующие) потенциально бесконечна, и задача второго игрока не в том, чтобы выиграть (такой исход правилами не предусмотрен!), а в том, чтобы продержаться бесконечно долго. Но при правильной игре первого это не получится. Вот как он должен играть.

Первый начинает с того, что мысленно рисует много непересекающихся рамок размером 100 х 1, которые он будет потом заполнять крести-

ками. Представив себе эти N рамок, он начинает ставить в каждую из них по одному крестику, для чего ему нужно N/2 ходов (считаем N чётным). (Возможно, одна из рамок окажется полностью заполненной ноликами к тому моменту, когда первый соберётся ставить в неё крестик. Тогда крестик можно поставить куда угодно вне рамок.) За это время второй может поставить лишь N/2 ноликов, так что получится как минимум N/2 рамок с одним крестиком и без ноликов.

Далее первый начинает ставить в эти N/2 рамок по второму крестику, для чего понадобится N/4 ходов (считаем, что N/2 четно). За это время второй успеет поставить нолики максимум в ЛГ/4 рамок, так что останется как минимум ЛГ/4 рамок с двумя крестиками и без ноликов.

И так далее. Если теперь положить N = 2100, то этот процесс может продолжаться до тех пор, пока не останется как минимум одна рамка со 100 крестиками (что нам и требуется).

26 Двое игроков отмечают точки плоскости. Сначала первый отмечает точку красным цветом, затем второй отмечает 100 точек синим, затем первый снова одну точку красным, второй 100 точек синим и так далее. (Перекрашивать уже отмеченные точки нельзя.) Докажите, что первый может построить правильный треугольник с красными вершинами.

Первый может начать с того, что поставить на плоскости п красных точек более или менее произвольно, не обращая внимания на ходы второго. Затем он должен посмотреть, куда можно поставить красную точку, чтобы она образовала правильный треугольник с двумя ранее поставленными красными точками. Сколько таких мест? Для каждой пары точек есть два положения, дополняющих их до правильного треугольника, пар всего п(п — 1)/2, поэтому таких мест п(п — 1), если только не будет совпадений. (Избежать совпадений можно, например, поставив все п точек на некоторой прямой.) Итак, имеется п(п — 1) мест и 100п синих точек. Если п достаточно велико (больше 101), то мест больше, так что одно из них свободно и первый выигрывает, поставив туда красную точку.

27 Двое по очереди обводят цветными карандашами стороны клеток на клетчатой бумаге. Первый игрок обводит красным, второй — синим. За каждый ход можно обвести отрезок между соседними узлами сетки (составляющий сторону клетки), если этот отрезок ещё не обведён другим игроком. Докажите, что второй (синий) игрок может помешать первому образовать красную замкнутую линию.

Второй игрок должен мысленно разбить все стороны клеток на пары, как показано на рисунке: отрезки, выходящие из данной точки вверх и вправо, объединяются в пару.

Как только первый игрок обводит одну из сторон, второй сразу же обводит парную ей сторону. Таким образом, в каждой паре либо обе стороны не обведены, либо они обведены разными цветами. Поэтому полностью красной пары образоваться не может. А в замкнутой красной ломаной линии всегда есть левый нижний красный угол.

(Формально: рассмотрим вершины красной ломаной с минимальной абсциссой, а среди таких — вершину с минимальной ординатой. Из этой вершины не может идти красной стороны ни вниз, ни влево, так что должна быть красная пара.)

28 Двое играют в крестики-нолики в кубе 3x3x3, стремясь поставить три своих знака на одной прямой. Кто выигрывает при правильной игре и как он должен играть?

29 Даны п точек на плоскости, никакие три из которых не лежат на одной прямой. Двое, начав с некоторой точки, по очереди последовательно соединяют их отрезками. Первый проводит отрезок AB из исходной точки А, второй — отрезок ВС, первый — CD и так далее. (Ломаная ABCD... может быть самопересекающейся и проходить несколько раз через одну и ту же точку, но дважды проходить по одному отрезку нельзя.) Тот, кто не может сделать ход (все отрезки из его точки уже проведены), проигрывает. Докажите, что первый игрок может выиграть.

30 Двое игроков ставят крестики и нолики на бесконечной клетчатой бумаге, причём на каждый крестик первого игрока второй отвечает 100 ноликами. Докажите, что первый может добиться, чтобы некоторые четыре крестика образовали квадрат (со сторонами, параллельными линиям клеток).

7. Изоморфизм игр

Научное слово «изоморфизм» означает, что две с виду разные игры по существу одинаковы (изоморфны). Точное определение мы сможем дать, лишь дав формальное определение игры (раздел 9). Пока что мы приведём несколько примеров.

С одним примером изоморфных игр мы уже сталкивались: это игра с двумя кучками спичек и игра с односторонней ладьёй. Сейчас мы приведём другой пример игры, которая изоморфна одной из ранее разобранных. (Попробуйте сами догадаться, какой, не читая объяснений.)

31 Шоколадка имеет вид прямоугольника m х п, разбитого на клетки 1X1. За один ход можно разломать её на две части по прямой (границе клеток) и съесть одну часть. Одна из долек (клеток) шоколадки запачкана; кто съедает её, проигрывает. Как определить, кто выигрывает, зная размеры шоколадки и положение дольки?

Позиция в игре с шоколадкой характеризуется количеством рядов слева, справа, снизу и сверху от запачканной дольки (рис. 8).

Что происходит, когда мы разламываем шоколадку на два куска? Тот, который не содержит запачканной дольки, съедается (и доставляет игроку удовольствие, выходящее за рамки игры), а второй остаётся, и в нём одно из четырёх чисел а, Ь, с, d уменьшается (возможно, до нуля, если запачканная долька оказывается с краю). Остальные три числа остаются без изменений.

Таким образом, изменения чисел а, Ь, с, d соответствуют правилам игры «ним» с четырьмя кучками: ход в игре с шоколадкой соответствует уменьшению одного из этих чисел, и любое такое уменьшение соответствует возможному разлому шоколадки. Значит, для решения задачи можно воспользоваться анализом игры «ним» из раздела 4.

Приведём ещё один пример изоморфных игр — видимо, он не имеет глубокого математического смысла, но весьма эффектен. Чтобы оценить его, попробуйте догадаться, какой популярной игре изоморфна игра из следующей задачи, не глядя на следующую страницу (где есть картинка с решением).

32 Имеются фишки с цифрами 1,2,3,4, 5,6,7,8,9 (как в игре «лото»). Два игрока по очереди берут фишки (за каждый ход — по одной фишке). Выигрывает тот игрок, который первым соберёт у себя три фишки с суммой 15. (Если ни у одного игрока таких фишек не будет, фиксируется ничья.) Может ли один из игроков обеспечить себе победу? ничью?

Рис. 8. Шоколадка и четыре числа.

Чтобы установить нужный изоморфизм, вспомним популярный сюжет из книг по «занимательной математике» — магические квадраты. Числа от 1 до 9 можно расставить в квадрате 3x3 так, чтобы сумма в каждой строке, каждом столбце и по каждой из двух диагоналей равнялась 15 (см. рисунок).

Более того, других комбинаций из трёх чисел с суммой 15 (кроме горизонталей, вертикалей и диагоналей) на этом рисунке нет (проверьте!).

Теперь уже понятно, что если мы будем отмечать взятые первым игроком фишки крестиками в этой таблице, а фишки второго игрока отмечать ноликами, то игра превратится в обычные крестики-нолики. Игроки по очереди ставят свои знаки (на языке фишек — берут фишки), а выигрывает тот, кто первым наберёт три фишки с суммой 15 (поставит три своих знака в один ряд).

Любители крестиков-ноликов знают, что обе стороны при правильной игре могут гарантировать себе как минимум ничью. (Доказательство этого факта основано на переборе вариантов, и подробно проводить этот перебор мы не будем.)

8. Игры с многими исходами

Многие игры (скажем, крестики-нолики, о которых только что шла речь) допускают и ничьи. Анализируя такие игры, удобно представлять себе, что игра идёт на деньги и по её итогам проигравший платит выигравшему рубль (а при ничьей игроки остаются при своих).

Назовём игроков Максом и Мином, а результатом игры будем считать сумму, которую Мин выплачивает Максу. (Отрицательный результат при этом означает, что Макс платит Мину.) Имена игроков понятны: Макс хочет, чтобы выплачиваемая ему сумма была как можно больше (результат игры был максимален), а Мин — наоборот (чтобы результат был минимален). Таким образом, игра с ничьей (как крестики-нолики) может иметь три возможных результата: +1 (выигрыш Макса), 0 (ничья) и —1 (выигрыш Мина).

Но можно анализировать и игры с большим числом исходов.

33 Макс и Мин красят забор из 20 досок. Каждый по очереди красит одну из досок (любую по своему выбору) в синий или зелёный цвет (по

Рис. 9. Покрашены три доски.

своему выбору). Начинает Макс. Когда весь забор покрашен (каждый игрок покрасил 10 досок), подсчитывают число изменений цвета — границ, где синий цвет сменяется зелёным или наоборот. Это число считается результатом игры.

Таким образом, идеал Макса — забор, где цвета чередуются (19 линий смены цветов), а идеал Мина — забор, выкрашенный целиком в один и тот же цвет (0 линий). Конечно, ни тот, ни другой не могут достигнуть своего идеала. А чего они-таки могут достичь?

Легко сообразить, что Макс может добиться, чтобы было по крайней мере 9 линий смены цвета. Для этого он на всех ходах (кроме первого — их остаётся 9) должен выбирать какую-нибудь доску, соседнюю с одной из уже покрашенных, и покрасить её не в цвет соседа. (Если оба соседа были одного цвета, то появятся даже две линии раздела.)

Чуть более сложно заметить, что Мин может добиться, чтобы линий смены цветов было не больше 9. Для этого он должен мысленно разбить все доски на пары соседних (всего будет 10 пар) и заботиться о том, чтобы в каждой паре доски были одного цвета. (Это легко: когда Макс красит какую-то доску, Мин красит парную к ней в тот же цвет.) Тогда внутри пар цвет не меняется, и изменение возможно только на границе между парами, а таких границ 9.

Говорят, что число 9 является ценой игры. Это означает, что одновременно выполнены два условия:

• у Макса есть стратегия, которая гарантирует результат не меньше 9 при любой игре Мина;

• у Мина есть стратегия, которая гарантирует результат не больше 9 при любой игре Макса;

Как мы увидим в разделе 9, для любой «конечной игры с полной информацией» существует цена игры. Отсюда будет следовать и утверждение о шахматах, с которого мы начали обсуждение. В самом деле, возвратимся к играм, где возможен выигрыш одного из игроков, а также ничья (результат —1,0 или 1). Для такой игры цена 1 означает, что Макс может гарантированно выиграть, цена —1 означает, что Мин может гарантированно выиграть, а цена 0 означает, что и Макс, и Мин могут обеспечить себе как минимум ничью.

Но прежде чем доказывать общее утверждение о существовании цены в любой конечной игре с полной информацией, мы рассмотрим ещё несколько примеров.

34 В клетке a1 шахматной доски стоит пешка. Двое игроков по очереди двигают её, причём каждый может подвинуть её на одну клетку вверх или на одну клетку вправо. Первым ходит Макс. Когда пешка попадает на диагональ (это будет после семи ходов), игра кончается, и её результат (сколько Мин платит Максу) определяется по таблице (рис. 10).

Прежде всего заметим, что для каждой из клеток доски известно, кто из игроков (Макс или Мин) в ней ходит. В частности, последний (седьмой) ход делает Макс. Это позволяет вычислить цену всех одноходовок в этой игре (рис. 11) — ясно, что Макс должен идти туда, где число больше.

Предыдущим ходом будет ход Мина, и ему выгодно выбрать из двух вариантов тот, где цена оставшейся игры меньше. Получаем цены двухходовок (рис. 12).

Продолжая эти рассуждения (предыдущий ход Макса, ему выгодна большая цена, до этого ход Мина и т.п.), заполняем таблицу ценами всех окончаний игры (рис. 13). Для удобства клетки, в которых ходит Макс,

Рис. 10. Цены исходов игры.

Рис. 11. Цены одноходовок.

Рис. 12. Цены двухходовок.

Рис. 13. Цены всех окончаний.

выделены на рисунке серым цветом. В них стоит максимум из значений справа и сверху, а в остальных — минимум. Таким образом, цена игры (число в начальной клетке a1) равна 5.

Чтобы гарантировать себе такой результат (5 или больше), Макс должен ходить в ту из клеток, где число больше. Тогда при его ходах число под пешкой не убывает. При ходах Мина оно заведомо не убывает, так как в клетках Мина стоит минимум двух чисел справа и сверху. Таким образом, число под пешкой может только расти, и в конце оно не меньше 5.

С другой стороны, если Мин ходит туда, где число меньше, то при его ходах число под пешкой не возрастает, а при ходах Макса оно и не может возрасти. Значит, оно никогда не возрастает и в конце не больше 5.

Вот ещё несколько задач на определение цены игры.

35 Макс разрезает торт на два куска, Мин разрезает один из кусков (по своему выбору) на два, получается всего три куска. Эти три куска по очереди (выбирая любой из оставшихся кусков) забирают Макс, Мин и снова Макс. (Каждый игрок хочет получить побольше торта. Формально говоря, результат игры — сумма частей, доставшихся Максу.)

[Указание. Когда торт уже разрезан, при разумном поведении игроков Мину достанется средний кусок (другими словами, цена возникающей после разрезания игры равна сумме двух остальных кусков). Если после первого разреза имеются куски размером рид, причём р ^ д, то второй игрок может своим разрезом добиться среднего куска р/2 (если разрежет кусок р пополам), а также q (если отрежет от р ничтожно малый кусок). Поэтому второй игрок может законно рассчитывать на max(p/2, q) (но не на большее: если он режет g, то средним куском будет часть куска g; если он режет р, то возникнет часть не больше р/2, ещё есть часть q, и средней будет одна из них). Следовательно, первым ходом Макс должен сделать max(p/2, q) как можно меньше, для чего разделить торт в отношении 2:1.]

36 Имеется цепочка из п сосисок. Два кота ходят по очереди, перекусывая одну из перемычек между сосисками; если при этом получаются одиночные сосиски, они съедаются (сделавшим ход). Результат игры: кто из котов съел больше и на сколько. Разберите случаи п = вип = 7.

(Формально говоря, котов надо назвать Максом и Мином и результатом игры считать разницу между числом сосисок, съеденных Максом и числом сосисок, съеденных Мином. Или просто число сосисок, съеденных Максом, так как второе число дополняет первое до п.)

[37] На столе лежит двадцать монет в 1,2,3,..., 20 граммов. Игроки по очереди кладут монеты на чашечные весы без гирь (за один ход можно взять любую из оставшихся монет и положить её на любую из чашек). Первый игрок хочет максимально нарушить равновесие (добиться максимальной разности между чашками весов, всё равно в какую сторону).

9. Формальные определения и доказательства

Мы привели много разных примеров игр с полной информацией и оптимальных стратегий для игроков в них. Но до сих пор мы не дали общего определения рассматриваемого класса игр и не доказали теоремы о существовании цены игры и оптимальных стратегий (хотя по существу все необходимые рассуждения проводили в конкретных примерах).

Дадим теперь точные определения и доказательства. Чтобы задать конечную игру с полной информацией, нужно

• указать конечное множество, элементы которого называются позициями игры;

• разделить позиции на три непересекающихся класса: заключительные (игра окончена), позиции с ходом Макса и позиции с ходом Мина;

• для каждой заключительной позиции указать результат игры (сколько Мин платит Максу);

• для каждой позиции с ходом Макса указать возможные ходы, то есть те позиции, которые могут случиться после ходов Макса; аналогично для ходов Мина;

• наконец, нужно указать начальную позицию игры.

При этом не должно быть бесконечных партий (последовательностей позиций, в которых игроки ходят в соответствии с правилами, но так и не попадают в заключительную позицию). (Тем самым некоторые из рассмотренных нами игр к этому классу игр не относятся.)

Заметим, что мы не требуем, чтобы ходы Макса и Мина чередовались — обычно это так и есть, но в наших рассуждениях это использоваться не будет.

Можно представлять себе конечную игру с полной информацией в виде ориентированного графа, вершинами которого являются позиции, а рёбра указывают возможные ходы. (Похожий граф мы рисовали в задаче со спичками, но там мы не указывали очерёдность хода, так что теперь

надо нарисовать две копии картинки — для Макса и для Мина, — а стрелки проводить из одной половины в другую.)

Стратегией Макса в конечной игре с полной информацией называется правило, указывающее, как ему следует ходить в каждой из позиций, где ход за ним. Аналогично определяются стратегии для Мина.

Теорема. Для любой игры (в смысле данного только что определения) существует число с, а также стратегия Макса а и стратегия Мина ß с такими свойствами:

• в любой партии, где Макс придерживается стратегии а, результат игры (число, написанное в заключительной позиции) не меньше с;

• в любой партии, где Мин придерживается стратегии ß, результат игры не больше с.

Доказательство теоремы повторяет рассуждения, использованные при вычислении цены игры с пешкой на доске, но более формально. Будем назначать цены для позиций игры по таким правилам:

• цена заключительной позиции равна написанному в ней числу;

• если для позиции Макса во всех следующих за ней (согласно разрешённым ходам) позициях уже написаны числа, то пишем в ней максимум из этих чисел;

• если для позиции Мина во всех следующих за ней (согласно разрешённым ходам) позициях уже написаны числа, то пишем в ней минимум из этих чисел.

Правила эти применяем в любом порядке, пока это возможно.

Лемма: рано или поздно всем позициям игры будут назначены цены.

В самом деле, предположим, что мы применяли указанные правила «до упора». Если какая-то из позиций останется без числа, то она не может быть заключительной. Более того, какая-то из следующих за ней позиций тоже останется без числа, тогда и у неё какая-то из следующих без числа и так далее. Получим бесконечную партию, которой по предположению нет.

Теперь легко доказать утверждение теоремы. Пусть с — число, написанное в начальной позиции. Рассмотрим стратегию а для Макса, которая предписывает ему из каждой вершины идти туда, где написано то же самое число (в ту вершину, где достигается максимум). Аналогичным образом, стратегия ß предписывает Мину ходить в вершину, где достигается минимум.

При ходах Макса число в текущей позиции не может увеличиться, а если Макс следует стратегии а, то и не уменьшается. При ходах Мина число не может уменьшиться, а если Мин следует стратегии ß, то оно и не увеличивается. Поэтому если Макс следует своей стратегии, то число в заключительной позиции будет не меньше с; аналогично для Мина. Теорема доказана.

Для случая игр с двумя результатами +1 (выигрыш Макса) и —1 (выигрыш Мина), в которых ходы игроков чередуются (после Макса ходит Мин и наоборот), правила вычисления цены позиции можно переформулировать так:

• если в позиции х ход Макса и все позиции, куда можно пойти из х, выигрышны для Мина, то х проигрышна для Макса;

• если ход Макса и среди позиций, куда можно пойти из х, есть проигрышная для Мина, то X выигрышна для Макса;

• аналогично для Мина.

Выигрышная стратегия — для того из игроков, у которого она есть, — состоит в том, чтобы ставить противника в проигрышную для него позицию. По существу эти правила мы уже использовали, разбирая конкретные примеры (см. правила в рамке на с. 6).

Доказанную в этом разделе теорему называют теоремой Цермело по имени немецкого математика Эрнста Цермело (того самого, именем которого иногда называют аксиому выбора и теорему о возможности полного упорядочения любого множества), хотя его статья (О применении теории множеств к теории шахмат, доклад на Пятом международном математическом конгрессе в 1912 году) была не совсем про это.

Лев Толстой в «Войне и мире» писал: «Хороший игрок, проигравший в шахматы, искренно убежден, что его проигрыш произошел от его ошибки, и он отыскивает эту ошибку в начале своей игры, но забывает, что в каждом его шаге в продолжение всей игры были такие же ошибки, что ни один его ход не был совершенен. Ошибка, на которую он обращает внимание, заметна ему только потому, что противник воспользовался ею». Зная теорему Цермело, мы можем ему возразить: если находившийся в выигрышной или ничейной позиции игрок проиграл, то можно точно указать тот его ход, после которого позиция впервые стала для него проигрышной. Но слова «можно указать» здесь надо понимать в математическом, а не в житейском смысле: такое указание (для шахмат) далеко выходит за пределы возможностей компьютеров.

10. Теоремы существования

Раньше при анализе игр мы предъявляли стратегии и затем доказывали, что они обладают требуемыми свойствами (конструктивное доказательство существования стратегии). Теорема Цермело иногда позволяет доказать существование стратегии (для конкретного игрока) неконструктивно, не предъявляя самой стратегии. Вот один из таких примеров.

38] Двое играют в крестики-нолики на доске п х п, причём для выигрыша нужно расположить в ряд (вертикальный, горизонтальный или диагональный) не менее /с подряд идущих знаков (крестиков или ноликов). Докажите, что у первого есть стратегия, гарантирующая ему выигрыш или по крайней мере ничью.

В самом деле, теорема Цермело говорит, что если это не так, то у второго есть стратегия, гарантирующая ему выигрыш. А тогда — как мы сейчас увидим — и у первого есть стратегия, гарантирующая выигрыш. А это уже невозможно — две выигрышные стратегии не могут выиграть друг у друга.

Итак, пусть у ноликов есть выигрышная стратегия. Тогда она есть и у крестиков. Неформально говоря, объяснение совсем простое: лишний крестик, поставленный на первом ходу, помешать не может, а если на первый ход не обращать внимания, то крестики окажутся в положении ноликов и смогут выиграть.

Попробуем доказать это формально и рассмотрим следующую стратегию для крестиков. Первый ход делается карандашом и как бы не замечается в дальнейшем. Условно говоря, крестики смотрят на позицию через очки, в которых карандашный крестик не виден, а видны только следующие («чернильные») и применяют стратегию для ноликов (только вместо крестиков ставятся нолики и наоборот; можно сказать, что через очки чернильные крестики видны как нолики, а нолики — как крестики).

Однако всё не так просто. Во-первых, стратегия может предписывать поставить чернильный крестик на место карандашного, но правилами игры требуется на каждом шаге ставить новый крестик. Тогда мы должны обвести карандашный крестик чернилами, но взамен на свободном месте поставить новый карандашный крестик. Тогда все правила игры (и основной, и имитируемой игры за второго игрока) будут соблюдены.

(Замечание. Может оказаться, что свободного места нет, тогда пози-

ция в реальной игре соответствует желаемой позиции в воображаемой игре, и потому уже является выигрышной.)

Во-вторых, наличие дополнительного крестика может прервать игру раньше времени — но в этом случае крестики просто выиграют раньше.

Вот похожий пример (сообщил Вольфганг Меркле), где рассуждение даже проще:

39 Прямоугольная доска m хп заполнена фишками. Игроки ходят по очереди, выбирая одну из фишек на доске и снимая с доски её и все фишки над ней или правее (то есть все фишки в квадранте, левым нижним углом которого она является). Кто берёт последнюю фишку, проигрывает. Докажите, что в этой игре у первого игрока есть выигрышная стратегия (за исключением очевидно проигрышного случая m = п = 1).

[Указание. Первый игрок может взять фишку в правом верхнем углу. Если останется проигрышная для второго позиция, то всё доказано. Если позиция будет выигрышная для второго, рассмотрим его выигрывающий ход. Почему бы первому не сделать этот ход с самого начала?]

Ещё один пример такого рода — игра «гекс» (hex), в которую, в соответствии с её названием, играют на доске из правильных гексагонов, по-русски — шестиугольников.

40 Пары противоположных сторон ромба (рис. 14) розданы игрокам — «синему» и «зелёному». Игроки по очереди закрашивают по одному шестиугольнику (своим цветом); их задача — соединить «свою» пару сторон (так, чтобы можно было пройти от одной стороны до другой по цепочке соседних шестиугольников того же цвета).

Рис. 14. Поле для гекса.

Можно считать, что игра не останавливается, когда один из игроков соединил свои стороны, а продолжается до тех пор, пока не будут закрашены все шестиугольники. Ведь если один из игроков соединил свои стороны, то соединяющий их путь будет непреодолимым препятствием для второго игрока, так что изменить исход игры он не сможет. (Этот геометрически очевидный факт не так просто доказать формально, и мы этого делать не будем.)

Чуть менее очевиден другой факт: если все шестиугольники раскрашены в синий или зелёный цвет, то одному из игроков удалось выиграть. Неформально это можно объяснить так. Посмотрим на область из синих шестиугольников, которая примыкает к верхней синей стороне. Если она достигла нижней синей стороны, то синий игрок выиграл. Если же нет, то по краю этой синей области (по ограничивающим её зелёным шестиугольникам) можно пройти от одной зелёной стороны до другой. (В частности, так будет, если эта область пуста, то есть к верхней синей стороне не примыкает ни одного синего шестиугольника.)

Как и в предыдущем случае, строгое доказательство тут не так просто, и мы его не приводим.

Таким образом, в гексе не бывает ничьих. Отсюда по теореме Цермело следует, что один из игроков может выиграть. Как и для крестиков-ноликов, можно доказать, что второй игрок не может иметь выигрышной стратегии, так как в этом случае первый мог бы её приспособить для себя (не обращая внимания на свой первый ход). Значит, выигрышная стратегия имеется у первого игрока (для любого размера доски, лишь бы она была симметрична и расстояния между синими и зелёными сторонами были одинаковы).

Но что это за стратегия? А вот этого никто не знает — мы не знаем никакого способа найти эту стратегию, кроме как перебирать все возможные ходы, ответы противника на них и т. п. (а это — огромный перебор). И есть причины опасаться, что никакого существенно лучшего способа может и не быть (см. далее раздел 12 о программировании игр).

Интересно, что в похожей игре, называемой иногда игрой Гейла (D. Gale) или «бридж-ит», есть не только неконструктивное доказательство существования выигрышной стратегии для первого игрока (аналогичное разобранным нами), но и простая явная стратегия. Одна такая стратегия описана в книжке «Программирование: теоремы и задачи», ftp.mccme.ru/users/shen/progbook. Здесь мы приведём другой (бо-

лее общий) способ указать такую стратегию. Вот о какой игре идёт речь.

[41 Карандашом нарисован прямоугольник п х (п + 1), разбитый на квадраты 1x1. Двое ходят по очереди: первый может обвести чернилами карандашную сторону одного из квадратов, а второй может стереть карандашную сторону. (Стирать обведённые чернилами стороны и обводить стёртые нельзя.) Первый игрок хочет соединить чернильными линиями какие-то две точки на нижней и верхней сторонах прямоугольника (а второй — помешать первому).

Чтобы понять, почему в этой игре первый игрок имеет выигрышную стратегию, её удобно представить в симметричной форме. Наложим на прямоугольник другой такой же, только повёрнутый на 90° относительно центра. Договоримся, что первый игрок обводит линии в исходном прямоугольнике, а второй — другим цветом в повёрнутом, причём линии разных цветов не могут пересекаться, и задача второго игрока — соединить левую и правую стороны своего прямоугольника.

Рис. 15. Надо соединить нижнюю и верхнюю сторону.

Рис. 16. Симметричный вариант игры.

Стороны разных цветов пересекаются в своих серединах, так что обвести сторону одного цвета — всё равно что стереть сторону другого цвета. Ещё нужно заметить, что в новой игре, когда сделаны все ходы (из каждой пары альтернативных сторон проведена одна), всегда выигрывает один из игроков, и только один. Как и для гекса, это интуитивно очевидное утверждение строго доказать не так просто, и мы примем его на веру. Теперь ясно, что новая симметричная версия игры эквивалентна старой и что выигрышной стратегии у второго игрока быть не может (если бы она была, то первый мог бы её тоже применить — лишний отрезок повредить не может). Значит — как мы знаем — выигрышная стратегия есть у первого.

А вот другое доказательство существования выигрышной стратегии для первого, которое указывает её явно. Для начала «склеим» все точки на верхней и нижней стороне исходного прямоугольника и будем требовать от первого игрока соединить верхнюю и нижнюю точки. Ясно, что это ничего не изменит (потому что линии, которые он обводит, остались теми же, и задание по существу то же).

Рис. 17. Верхняя и нижняя стороны склеены в точки.

Такие картинки называют графами, точки называют вершинами, а соединяющие их линии — рёбрами. Один игрок обводит рёбра графа, второй их стирает — и задача первого в том, чтобы соединить заранее заданную пару вершин. Нам надо доказать, что в нашем графе у первого игрока есть выигрышная стратегия.

Чтобы сделать это, немного видоизменим задачу.

42 Имеется граф — набор точек (вершин), соединённых карандашными линиями (рёбрами). Игроки ходят по очереди. Первый игрок может стереть одну карандашную линию по своему выбору, второй может обвести (ещё не стёртую) линию чернилами, и потом её уже нельзя бу-

дет стереть. Игра кончается, когда все линии либо стёрты, либо обведены. Второй игрок выиграл, если по оставшимся линиям можно пройти из любой вершины графа в любую другую. Для каких графов у второго игрока есть выигрышная стратегия?

Обратите внимание на два отличия: (1) надо соединить не две вершины, а все; (2) стирающий игрок ходит первым. Эти изменения позволяют дать красивый ответ.

Теорема. Второй игрок имеет выигрышную стратегию в том и только том случае, когда рёбра графа можно так раскрасить в два цвета, что рёбер каждого цвета достаточно, чтобы из любой вершины пройти в любую другую, идя по ним.

Если считать вершины графа городами, а рёбра — дорогами, условие означает, что можно так продать все дороги двум компаниям, чтобы каждая компания имела полноценную сеть дорог (из любого города можно проехать в любой по её дорогам).

Эту теорему доказал Леман (A. Lehman) в 1964 году, и доказательство (если знать, что именно надо доказывать!) совсем не сложное. Вот оно.

Пусть у второго игрока есть выигрышная стратегия. Её можно применить и в ситуации, когда обводящий рёбра игрок начинает (если ни одного ребра не стёрто, тем лучше). Дадим теперь двум игрокам, обводящим рёбра чернилами разных цветов, сыграть друг с другом, считая, что обведённые одним игроком рёбра стёрты для другого. Каждый из них выиграет, то есть сформирует из своих рёбер полноценную сеть дорог. Значит, в графе есть две непересекающиеся такие сети.

В обратную сторону. Пусть в графе есть два непересекающихся набора рёбер, и каждый образует полноценную сеть. Для наглядности будем называть рёбра этих наборов красными и синими. Если первый игрок стирает ребро, скажем, в красной сети, то эта сеть может распасться максимум на две части. Синих рёбер достаточно, чтобы из одной части пройти в другую. Значит, есть синее ребро, концы которого принадлежат разным частям красной сети. Второй игрок обводит это ребро. Дальнейшая игра по существу происходит на графе, в котором концы обведённого ребра склеены в одну вершину, и в этом графе синие и красные рёбра по-прежнему образуют две полноценные сети, так что можно вновь применить то же рассуждение (пока не останется граф с одной вершиной, где всё с самого начала хорошо).

Это доказательство и много других результатов об играх можно найти в книге: J. Beck, Combinatorial Games, Tic-Tac-Toe theory, Cambridge University Press, 2008 (с. 68).

Как применить его к игре Гейла? Вернёмся к игре на графе рис. 17. Пусть первый игрок начнёт с того, что соединит верхнюю вершину с самым левым нижним соседом. Тогда после склеивания этих двух вершин получится граф, показанный на рис. 18.

Остаётся применить критерий Лемана к полученному графу и убедиться, что обводящий игрок может не только соединить две вершины, но и обеспечить путь между любыми двумя вершинами (это даже больше, чем надо). Для этого надо указать две полноценные сети, что несложно (рис. 19): одна включает в себя все горизонтальные линии, вторая использует перпендикулярные линии (кроме одной в каждом слое, это обеспечивает связность первой сети). Из этих рассуждений лег-

ко извлечь явную выигрышную стратегию для первого игрока в игре Гейла. Можно ещё спросить, как найти две сети, упомянутые в критерии Лемана, или убедиться в их отсутствии. Оказывается, что для этого существуют достаточно эффективные («полиномиальные») алгоритмы для

Рис. 18. Граф после первого хода.

Рис. 19. Две полноценные сети.

заданного графа (Edmonds, 1965, ссылка приведена в упомянутой книге Бека). Эти алгоритмы можно использовать для построения явной выигрышной стратегии первого игрока в случае, когда критерий не выполнен (если мы можем вычислить, какие позиции выигрышные и какие проигрышные, игру достаточно просчитывать на один ход вперёд).

43 Полоска разбита на клетки (пронумерованные 0,1,2,... слева направо; будем считать, что она бесконечна вправо). В некоторых клетках находятся роботы (в каждой клетке может быть несколько; общее число роботов конечно). В игре участвуют два игрока. В каждом раунде игры

• первый игрок делит всех роботов на два класса (произвольным образом);

• второй игрок выбирает один из классов и удаляет всех роботов этого класса;

• все оставшиеся роботы делают шаг влево на одну клетку.

Первый игрок выигрывает, если в какой-то момент в самой левой (нулевой) клетке окажется какой-то из роботов. Соответственно, второй игрок выигрывает, если ни один из роботов не успеет туда дойти (будет снят с доски раньше).

Какие начальные конфигурации выигрышны для первого и второго?

Например, позиция (1,1), в которой два робота стоят в клетке с номером 1 (не крайней, но рядом с ней), выигрышная для первого. Он делит роботов на два класса, по одному в каждом. Кого бы из двух ни снял второй, он не помешает оставшемуся роботу дойти до края.

Напротив, в позиции (1,2,3,4,..., k), где во всех клетках до k-й, кроме самой левой, стоит по одному роботу, второй может выиграть. Для этого ему достаточно снимать с доски робота, который попал в клетку 1 (и всех отнесённых в один с ним класс), если такой есть (если нет, можно снимать любых). Заметим, что в каждой клетке может быть не больше одного робота (потому что так было изначально).

Теорема Цермело говорит, что где-то проходит граница: если роботов мало, то должен выигрывать второй, а если достаточно много, то первый. Но где именно эта граница, что значит «достаточно много»?

Удивительным образом ответить на этот вопрос помогает теория вероятностей. Рассмотрим такую «вероятностную стратегию» для второго:

чтобы определить, какой из классов удалять, он бросает монетку (честную). Пусть первый следует какой-то стратегии (в обычном смысле, без монетки; такие стратегии называют ещё «детерминированными»). Возьмём робота, изначально стоявшего в клетке с номером s. Какова вероятность, что он дойдёт до крайней клетки? Для этого нужно, чтобы s раз ему повезло (он не попал в удаляемый класс), то есть вероятность равна 1/2S. А вероятность того, что хотя бы один робот дойдёт до края, не больше суммы вероятностей для каждого робота. Если игра началась, когда роботы стояли в клетках sx, s2,то эта сумма равна

Следствие: если роботов настолько мало, что то у первого нет выигрышной стратегии. В самом деле, выигрышная стратегия на то и выигрышная, чтобы выигрывать всегда, а не только с какой-то вероятностью, меньшей единицы! А раз у первого нет выигрышной стратегии, то по теореме Цермело выигрышная стратегия есть у второго. Что это за стратегия? Как надо играть, чтобы выигрывать не просто с положительной вероятностью (это получится, если выбирать случайный класс), а всегда?

Выигрышную стратегию для второго несложно указать явно (как говорят, «детерминизировать» вероятностную стратегию). Второй должен удалять тот из двух классов, который даёт больший вклад в сумму ^ 1/2S* (если вклады равны, то любой). Тогда значение суммы убывает по крайней мере вдвое, а при движении роботов возрастает ровно вдвое, поэтому всегда остаётся меньше единицы. Значит, никакой робот не сможет попасть в нулевую клетку (ведь при этом сумма стала бы не меньше 1).

А что будет, если 2/ 1/2S* ^ 1? В этом случае выигрывает первый. Чтобы убедиться в этом, достаточно доказать, что если сумма обратных степеней двойки (1/2,1/4,...) больше или равна единицы, то её можно разбить на две части, каждая из которых не меньше 1/2. (Это и будет стратегией первого игрока). В самом деле, расположим слагаемые в порядке убывания (невозрастания) длин и будем откладывать соответствующие отрезки слева направо на отрезке [0,1], начиная с левого края 0. Тогда мы не может проскочить 1/2 (как и любую точку, кратную последнему отложенному отрезку).

В нашем примере можно было бы вовсе обойтись без вероятностной стратегии, сразу указав детерминированную. Однако бывают ситуации, когда вероятностную стратегию указать легко, а детерминированная стратегия неизвестна.

11. Игры Шпрага — Гранди

Для игры «ним» имеется красивая теория, отчасти объясняющая, откуда там берётся двоичная система. Точнее говоря, эта теория занимается не конкретно игрой «ним», а целым классом игр.

Представим себе картинку из нескольких точек, соединённых стрелками (ориентированный граф). Мы предполагаем, что в этом графе нет циклов (нельзя пройти по стрелкам и вернуться в исходную точку). Игра состоит в том, что игроки по очереди передвигают стоящую на картинке фишку по стрелкам (за один ход можно пройти по одной стрелке), пока это возможно. Кто не может сделать ход, проигрывает. Такие игры мы будем называть играми Шпрага - Гранди (по имени математиков, придумавших их теорию).

(Именно такие игры мы рассматривали в наших первых примерах. Потом мы стали разделять вершины, в которых ход Макса и в которых ход Мина, а также делить позиции, в которых нельзя сделать ход, на выигрышные для Макса и Мина. Сейчас мы возвращаемся к первоначальной ситуации.)

Напомним правило классификации позиций в играх такого типа: позиция выигрышная, если из неё можно сделать ход в проигрышную позицию, и проигрышная в противном случае (если все ходы ведут в выигрышные позиции — в частности, если вообще нельзя сделать ход). По этому правилу мы однозначно классифицируем позиции (если говорить формально, мы применяем индукцию по максимальному числу ходов до окончания игры).

Теперь изменим это правило. Вместо того, чтобы приписывать позиции одну из букв В (выигрышная) или П (проигрышная), будем ставить ей оценку в виде неотрицательного целого числа. Правило будет таким:

в позицию ставится наименьшее неотрицательное целое число, которое отсутствует в тех вершинах, куда можно сделать ход.

В частности, позиции, в которых вообще нельзя сделать ход, получают нулевую оценку.

Хотя правило и выглядит несколько странно, оно (как мы сейчас увидим) приводит к интересной теории.

Для начала поймём, в каких случаях в позиции стоит нуль. Это бывает, когда из неё нельзя сделать хода, но не только в этих случаях. Со-

гласно правилу, нуль ставится тогда и только тогда, когда ни в одной из позиций, куда можно сделать ход, нет нуля (везде стоят положительные числа). Заметим, что ровно такое же правило было для проигрышных позиций: позиция проигрышна, если из неё нельзя сделать ход в проигрышную позицию. Тем самым доказана такая

Лемма 1. Позиция имеет оценку 0 тогда и только тогда, когда она является проигрышной.

Пример. Рассмотрим игру со спичками, в которой есть одна кучка спичек и можно брать любое число спичек (хоть все, но не меньше одной). Сама по себе эта игра бессмысленна: первым ходом можно взять все спички (если кучка непуста) и выиграть. Но интересно посмотреть, какие оценки позиций даёт наше правило.

Позиция с нулём спичек по определению имеет оценку 0. Из позиции с одной спичкой можно перейти только в позицию с нулём спичек, поэтому оценкой будет наименьшее число, отличное от 0, то есть 1. Из позиции с двумя спичками можно перейти в позиции с нулём спичек и с одной спичкой, поэтому оценкой будет наименьшее число, отличное от 0 и 1, то есть 2. И так далее — оценкой позиции с п спичками будет наименьшее число, отличное от оценок позиций с 0,1,2,..., п — 1 спичками. По предположению индукции эти оценки равны 0,1,2,..., п — 1, так что это наименьшее число будет п. (Заметим, что во всех позициях, кроме одной, стоят положительные числа — и эти позиции выигрышные.)

Более интересно найти оценки для позиций в игре с односторонней ладьёй (или, что то же самое, с двумя кучками спичек). Другими словами, мы должна заполнять клетки доски числами по такому правилу: в клетке ставится наименьшее целое неотрицательное число, которого нет под ней и слева от неё (рис. 20).

Рис. 20. Число в клетке — наименьшее отсутствующее слева и снизу.

Говоря научно, мы хотим определить функцию v двух целых неотрицательных аргументов с целыми неотрицательными значениями по та-

кому правилу: и(т, п) есть наименьшее целое неотрицательное число, отличное от всех и(т, п') при п' < п и от всех v(mf, п) при всех т' < т. Это правило можно переформулировать в виде трёх свойств функции и:

• если m ф m', то v(m, п) Ф v(mf, п) для любого п;

• если п Ф п', то v(m, п) Ф v(m, п') для любого m;

• если к < и(т, п), то к равно и(т, п') при некотором п' < п или равно v(m', п) при некотором т' < т.

(В первых двух условиях было бы логичнее написать т' < тип' < п, но числа можно поменять местами, так что это одно и то же.)

Заполним таблицу по этим правилам (рис. 21).

Чтобы увидеть закономерность в этой таблице, надо воспользоваться двоичной системой счисления. Оказывается, что для вычисления v(m, п) надо записать m и п в двоичной системе счисления, а потом сложить в столбик, но не просто так, а поразрядно (без переносов в следующий разряд). Другими словами, в 1-м разряде числа и(т, п) стоит единица в том и только том случае, когда в /-м разряде чисел тип стоят разные цифры (нуль и единица). Обозначая такое сложение знаком 0, получаем, что v(m, п) = m 0 п. Чтобы доказать это, надо проверить такие свойства операции 0:

Лемма 2. (а) Если т' Ф m, то m 0 п Ф т' 0 п для любого п.

(б) Если п' Ф я, то m 0 п Ф m 0 п' при любом т.

(в) Если к < т®п, то к = т'®п едя некоторого m! < m или к = т®п' для некоторого п' < п.

Доказательство. Если в сумме m 0 п изменить одно слагаемое, то оно изменится в некотором разряде — и поразрядная сумма изменится в том же разряде. Отсюда следуют пункты (а) и (б).

Докажем теперь (в). Пусть к < m 0 п. Рассмотрим самый старший разряд, в котором к отличается от m 0 п. В этом разряде в к стоит нуль, а в m 0 п стоит единица. Значит, (ровно) в одном из чисел т и п в этом разряде стоит единица. При замене этой единицы на нуль число уменьшится, даже если мы изменим младшие разряды так, чтобы подогнать m 0 п к к. Лемма доказана.

Теперь определим понятие суммы двух игр Шпрага - Гранди. (При этом суммой двух игр с одной кучкой спичек окажется игра с двумя куч-

Рис. 21. Таблица значений функции V.

ками спичек.) Неформально говоря, две игры происходят параллельно (каждая на своей доске), причём игрок может выбрать, на какой из двух досок он хочет в данный момент ходить. Формально говоря, позиция в игре-сумме представляет собой пару (Р, Q), где Р — позиция в первой игре, a Q — во второй. Из позиции (Р, Q) можно пойти в позицию (Р', Q) едя любой позиции Р', в которую можно пойти из Р, а также в позицию (Р, Q') для любой позиции Q', в которую можно пойти из Q.

Теорема Шпрага - Гранди. Оценка позиции (Р, Q) в сумме двух игр равна побитовой сумме оценок позиций Р и Q.

Другими словами, если позиция Р в первой игре имеет оценку р, а позиция Q во второй игре имеет оценку q, то позиция (Р, Q) в сумме игр имеет оценку р 0 q.

Доказательство. Проводим индукцию по максимальному числу оставшихся ходов в позиции (Р, Q). Обозначая оценку буквой ф, доказываемое равенство можно записать как

По определению мы должны проверить, что

• <р(Р) 0 <p(Q) отличается от cp(P\Q') для любой позиции (P',Q'), в которую можно пойти из (Р, Q);

• ф(Р) 0 ф(0) является наименьшим числом с таким свойством.

По определению суммы игр один из членов пары (Р', Q') остался тем же, что в паре (Р, Q), а другой получился ходом в игре-слагаемом. Поэтому величина ф(Р', Q'), по предположению индукции равная ф(Р') 0 p(Q'), отличается от <p(P)0<p(Q) ровно в одном слагаемом, и остаётся воспользоваться первыми двумя свойствами операции 0. Первая часть доказана.

Чтобы доказать вторую, рассмотрим произвольное целое неотрицательное /с, меньшее ф(Р) 0 <p(Q). По третьему свойству операции 0 число к можно представить в виде р' 0 <p(Q) с р' < ф(Р) или в виде ф(Р) 0 q' с q' < ф(0). Пусть верно, скажем, первое. Тогда (по определению оценки) р' равно ф(Р') для некоторой позиции Рг, в которую можно пойти из Р, и потому

(последнее равенство верно по предположению индукции), так что к встречается среди оценок позиций, в которые можно пойти из (Р, Q). Теорема доказана.

(Заметим, что в доказательстве мы использовали не определение операции 0 как поразрядного сложения, а её индуктивное определение.)

Пример. Игра «ним» с двумя кучками спичек представляет собой сумму двух игр с одной кучкой. Поэтому оценка позиции (m, п) (в одной кучке m спичек, в другой п) равна побитовой сумме оценок позиций m и п в игре с одной кучкой, то есть m 0 п. В частности, позиция (m, п) является проигрышной, если m 0 п = О, то есть m = п.

Аналогично можно разобрать и игру с тремя кучками (которая есть сумма игры с двумя кучками и игры с одной кучкой). Получится, что оценка позиции (m, п, к) равна m 0 п 0 к. (Заметим, что операция 0 ассоциативна, то есть (m 0 я) 0/с равно тф(пфк), что следует, например, из её определения как поразрядного сложения. Поэтому можно записывать m 0 п 0 к без скобок.)

Таким образом, проигрышными являются позиции, когда т®п®к = О, то есть те позиции, для которых в каждом разряде сумма по модулю 2 равна нулю (стоит чётное число единиц). Таким образом, мы передоказали результат раздела 4.

Отметим ещё такое

Следствие. Позиция (Р, Q) в сумме игр является проигрышной тогда и только тогда, когда ср(Р) = cp(Q).

В самом деле, ср(Р) 0 cp(Q) = О равносильно ср(Р) = cp(Q).

В частности, если мы играем на обеих досках в одну и ту же игру, то симметричная позиция (Р, Р) всегда проигрышная. (Это ясно и непосредственно: второй игрок может повторять ходы на другой доске.) Однако не следует думать, что проигрышны только симметричные позиции: если Pi Ф Р2, но <p(Pi) = (piPz), то позиция (Pi,Pi) тоже проигрышная.

Описанный способ вычисления оценок позиций не только изящен, но и позволяет иногда быстро находить проигрышные и выигрышные позиции. Это происходит, когда игра после хода игрока разбивается в сумму нескольких отдельных игр.

В заключение несколько кратких замечаний (которые не используются в дальнейшем).

1. Теорию игр Шпрага - Гранди можно изложить в другом порядке. На множестве пар (игра, начальная позиция) определяем сложение. Затем называем две пары (А, а) и (В, Ь) эквивалентными, если для любой пары (С, с) суммы (Л, а) + (С, с) и (В, Ь) + (С, с) одновременно являются

выигрышными или проигрышными. Сложение корректно определено на классах эквивалентности, более того, классы образуют группу, единичным элементом которой является игра с единственной позицией, а обратным элементом к паре является она сама. (Тут надо доказать, что игра (А, а) + (А, а) + (В, Ь) является выигрышной или проигрышной одновременно с (В, Ь); это так, поскольку ходы в (А, а) можно парировать теми же ходами в другом слагаемом.) Приведённое выше определение оценки позиции устанавливает изоморфизм этой группы с группой целых неотрицательных чисел с поразрядным сложением по модулю 2.

2. Вместо конечных графов можно рассматривать и бесконечные графы без циклов, в которых нет бесконечных путей. Можно при этом отождествить игру (частью которой считаем начальную позицию) с множеством игр, которые получаются из неё после одного хода. Тем самым игры отождествляются с множествами, и на классе всех множеств (точнее, на классах эквивалентности) возникает структура группы!

3. Можно пойти ещё дальше и рассматривать игру как пару множеств игр (после ходов одного и другого игрока). Получается интересная и загадочная структура, внутри которой можно отыскать действительные числа и многое другое. Эту конструкцию придумал Конвей (John Conway, On Numbers and Games, 1976).

12. Программирование игр

Раз уж мы говорим про игры и стратегии, надо немного сказать (пусть и в общих словах) о компьютерных программах, играющих в различные игры. Наверно, все слышали о достижениях шахматных программ, которым удавалось выигрывать у самых опытных гроссмейстеров. Но иногда они и проигрывали — а почему? Ведь если в игре есть выигрышная стратегия, она должна действовать всегда? Почему бы в самом деле компьютеру не провести анализ, который делали мы в разобранных примерах, и не классифицировать все позиции на выигрышные и проигрышные, а затем уже играть с полным знанием дела?

Дело в том, что позиций слишком много. Совсем грубо их количество можно оценить так: каждая из 16 фигур может находиться на любом из 64 полей, так что получается 6416 = 296 > 1028 позиций. (Эти оценки одновременно и завышены и занижены. Завышены — поскольку мы не

учитываем, что две фигуры не могут стоять на одном поле и что одинаковые фигуры — скажем, две ладьи — можно поменять местами, не меняя позиции. Занижены — поскольку мы вовсе не учитываем пешки.) Но порядок величин ясен: по этим оценкам таблица выигрышных и проигрышных позиций (один бит на позицию) занимает больше 1028 битов, то есть больше 1027 байтов, или 1018 гигабайтов, а объёмы самых больших дисков (одиночных) сейчас порядка тысячи гигабайтов, то есть понадобится 1015 таких дисков — несколько десятков тысяч на каждого жителя земного шара...

Но если так, то как вообще компьютеры могут играть в шахматы? Как и люди, компьютеры могут просчитывать варианты — для данной позиции они смотрят, какие возможны ходы, какие ответы возможны на каждый из них и так далее. Конечно, вариантов продолжения партии очень много (как и позиций) и все их рассмотреть невозможно. Приходится прерывать просмотр на каком-то уровне и грубо оценивать позицию (скажем, по материальному перевесу и расположению фигур). Подробности этого алгоритма (когда следует прерывать анализ вариантов, в каком порядке разбирать варианты, как оценивать позицию в конце перебора), а также быстрота перебора — вот что определяет сравнительную «силу» компьютерных программ.

Ещё к этому добавляется библиотека начал (дебютов), накопленная многовековым опытом шахматистов, а также сведения об окончаниях (эндшпилях). По поводу эндшпилей можно ещё заметить, что когда на доске остаётся мало фигур, общее число позиций становится приемлемым для компьютерного анализа, и с его помощью можно найти оптимальную стратегию игры в эндшпиле. (С помощью компьютеров удалось просчитать гораздо более сложные эндшпили, чем до них.) В последние годы большой прогресс связан с использованием методов машинного обучения для грубой оценки позиций. Благодаря этому машины научились обыгрывать людей не только в шахматы, но и в го.

Так обстоят дела с игровыми программами. Переходя от практической информатики к теоретической, можно отметить, что игры и в ней играют важную роль. Здесь нет возможности сказать об этом подробно, но игры с полиномиальным числом ходов соответствуют задачам, разрешимым с полиномиальным объёмом памяти, а игры на досках полиномиального размера (без ограничения числа ходов) — задачам, разрешимым за экспоненциальное время, и задачи обоих классов вряд ли являются практически разрешимыми.

13. Бесконечные игры

До сих пор мы по большей части рассматривали конечные игры, в которых любая партия рано или поздно заканчивается. Но чисто теоретически можно говорить и о бесконечных играх (хотя, конечно, в такую игру не сыграешь). Вот пример такой игры. Будем считать, что два игрока по очереди дописывают по одной цифре слева направо, получая бесконечную десятичную дробь (а в начале стоит нуль и запятая). Далее нужно сформулировать правило, которое определяет, кто выиграл в такой «бесконечной партии». Другими словами, нужно разбить все бесконечные десятичные дроби на два непересекающихся класса: Ах (выигрышные для первого игрока) и А2 (выигрышные для второго).

Пусть, скажем, первый игрок хочет получить периодическую дробь (рациональное число), а второй игрок — непериодическую (иррациональное число): Ai содержит все периодические дроби, а. А2 — все остальные. Тогда несложно сообразить, что у второго игрока есть стратегия, гарантирующая ему выигрыш. А именно, он должен в чётных позициях ставить цифры непериодическим образом. Ведь если дробь периодическая, то и цифры на чётных местах образуют периодическую последовательность.

Формальные определения таковы: стратегией (для первого или второго игрока) называется функция, аргументом которой является позиция, где ход за ним, а значением — этот самый ход. (Можно было бы сказать, что стратегия — это правило, предписывающее, как ходить во всех возможных позициях, но слово «правило» подразумевает какой-то алгоритм. А этого мы не требуем.) Стратегия называется выигрышной едя игрока, если все партии, в которых он придерживается этой стратегии, являются для него выигрышными. (Хочется сказать «заканчиваются его выигрышем», но это будет некорректно, так как партии бесконечны.)

Могут ли оба игрока иметь выигрышную (для себя) стратегию? Как и раньше, нет — если каждый будет следовать своей стратегии, то в полученной (бесконечной) партии один из игроков проиграет, и, значит, его стратегия не является выигрышной.

Однако теперь уже нельзя утверждать, что хотя бы один из игроков имеет выигрышную стратегию — можно доказать, что в некоторых играх такой стратегии нет ни у одного из игроков!

Это доказательство использует так называемую аксиому выбора (из теории множеств) и не даёт никакого конкретного примера игры. Более

того, есть теорема Мартина о детерминированности борелевских игр, которая гарантирует, что для явно заданных игр такого быть не может и один из игроков обязательно имеет выигрышную стратегию.

Мы рассмотрим лишь два простейших частных случая этой теоремы. Для наглядности будем говорить не о десятичных, а о двоичных дробях (так что у игрока на каждом ходу есть выбор из двух вариантов) и будем изображать партию как движение по бесконечному двоичному дереву снизу вверх, начиная от корня (рис. 22).

Рис. 22. Бесконечное двоичное дерево.

[44] Миша и Маша едут в автомобиле вверх по дереву, изображённому на рисунке, при этом по очереди решают, куда поворачивать на очередном перекрёстке (на чётных уровнях — Миша, на нечётных — Маша). На некоторых перекрёстках имеются забегаловки. Если они попали в один из таких перекрёстков, то Миша выиграл; бесконечный путь, не попадающий ни в одну из забегаловок, — выигрыш для Маши.

Оказывается, что в этой игре либо у Миши, либо у Маши есть выигрышная стратегия. Это можно доказать следующим образом. Будем называть вершину выигрышной, если у Миши есть стратегия, гарантирующая ему выигрыш начиная с этой вершины. В частности, все вершины с забегаловками таковы. (Вершины, находящиеся над ними по дереву, удобно также считать выигрышными.)

Если в вершине х ход Миши и хотя бы одна из двух следующих вершин хО и xl выигрышная, то вершина х выигрышная. Если в вершине х ход Маши и обе следующие вершины хО и xl выигрышные, то вершина X выигрышная.

Другими словами, если вершина невыигрышная и ход Миши, то любой его ход ведёт в невыигрышную вершину; если вершина невыигрышная и ход Маши, то у неё есть ход, ведущий в невыигрышную вершину. Следовательно, у Маши есть стратегия «избегать выигрышных вершин»; она применима, если начальная вершина была невыигрышной, и позволяет ей не попадать в выигрышные вершины (в частности, в вершины с забегаловками) — то есть гарантирует ей выигрыш в игре. Если же начальная вершина была выигрышной, то у Миши есть выигрышная стратегия (по определению выигрышной вершины).

(Это рассуждение основано на том, что выигрышное для Миши множество партий открыто: его выигрыш обязан проявиться на некотором конечном шаге.)

Рассмотрим теперь более сложное правило выигрыша (соответствующее так называемым «G$-множествам»).

45 Правила игры те же, но выигрыш определяется сложнее: если по пути было бесконечно много забегаловок, то выиграл Миша, если конечное число — то Маша.

Доказательство существования выигрышной стратегии в этом случае более сложное и проходит примерно так. Назовём Машиными вершинами те, начиная с которых у Маши есть выигрышная стратегия (гарантирующая конечность числа забегаловок на бесконечном пути). Если начальная вершина такова, то всё доказано.

Пусть это не так. Тогда рассмотрим изменённую игру, в которой задача Миши — попасть в забегаловку, не пройдя ни через одну Машину вершину (вплоть до забегаловки включительно). Эта игра является открытой (в описанном нами смысле), и потому (рассуждаем как в предыдущем примере) либо у Миши, либо у Маши в этой вспомогательной игре есть выигрышная стратегия. Если она есть у Маши, то ту же стратегию можно использовать для выигрыша в основной игре. (Надо следовать этой стратегии, пока путь не попадёт в Машину вершину. Когда и если это случится, надо переключиться на стратегию, которая есть в этой вершине по определению.) Но значит, в этом случае начальная вершина уже является Машиной, а мы предположили, что это не так.

Следовательно, у Миши есть стратегия, позволяющая ему попасть в забегаловку, не пройдя через Машину вершину. Как только он это сделал, все рассуждения можно повторить заново: текущая вершина («корень поддерева») не является Машиной, значит, у Миши есть стратегия,

позволяющая попасть ещё в одну забегаловку, не пройдя через Машину вершину. И так далее — в итоге путь проходит через бесконечное число забегаловок и Миша выигрывает.

Бесконечные игры на конечном графе. Вместо бесконечного дерева можно представлять себе конечную сеть дорог с односторонним движением и развилками (на каждой развилке известно, кто выбирает дальнейший путь — Миша или Маша). На некоторых развилках имеются забегаловки.

Формально говоря, дан ориентированный граф, в котором из каждой вершины выходит хотя бы одно ребро. Все вершины поделены на два класса — где выбор дальнейшего пути осуществляет первый игрок и где — второй. Кроме того, некоторые вершины выделены. Бесконечный путь выигрышен для первого игрока, если на нём бесконечно много выделенных вершин, и выигрышен для второго, если их конечное число (то есть начиная с некоторого момента выделенных вершин нет). Наконец, указана начальная вершина.

Как и для бесконечного дерева, можно доказать, что у одного из игроков есть выигрышная стратегия. Это можно формально вывести из утверждения для бесконечных деревьев, так как граф можно «развернуть» в дерево (его вершинами будут конечные партии). Но оказывается, что верно и более сильное утверждение: выигрышную стратегию всегда можно выбрать позиционной. Это значит, что очередной ход можно выбирать зависящим лишь от текущей вершины, но не от того, как мы туда попали.

14. Игры с неполной информацией

Не всякая игра может быть исследована с помощью рассмотренных нами приёмов. Сразу ясно, что игрокам в футбол или хоккей теории (по крайней мере наши) не нужны. Но и математическая теория игр не исчерпывается разобранным случаем «игр с полной информацией». Вот пример игры другого типа:

46 В игре «камень - ножницы - бумага» двое игроков одновременно выбрасывают на пальцах одну из трёх фигур: камень (кулак), ножницы (указательный и средний палец) или бумагу (раскрытую ладонь). Если они выбросили одно и то же, получается ничья. Если разное, то камень побеждает (тупит) ножницы, ножницы побеждают (режут) бумагу, бумага побеждает (оборачивает) камень.

Есть ли в этой игре у одного из игроков выигрышная стратегия (в том смысле, как мы это понимали)? Нет. Ведь если эта стратегия предписывает выбрасывать камень, то его можно победить бумагой, если бумагу, то её можно победить ножницами, а если ножницы — то камнем.

Выигрышная стратегия могла бы состоять в том, чтобы чуть запоздать со своим ходом и успеть отреагировать на ход противника. Но это, конечно, не стратегия, а прямое жульничество в обход правил игры — вся соль в том, что ходы надо делать одновременно, не имея информации о ходе противника.

Такие игры называются «играми с неполной информацией» (в отличие от «игр с полной информацией», которые мы рассматривали раньше).

Что же говорит математическая теория про нашу игру? Ничего особенного. Она предлагает, как говорят, вероятностную стратегию, состоящую в том, чтобы в трети случаев выбрасывать камень, в трети случаев выбрасывать ножницы и в трети — бумагу. (Или, как сказали бы математики, выбрасывать камень, ножницы и бумагу с вероятностями 1/3.) При этом, естественно, надо стараться, чтобы противник не мог догадаться, что мы собираемся выбросить. Например, можно тайно от него бросить игральную кость (с шестью цифрами на гранях) и решить, скажем, что 1 и 2 соответствуют камню, 3 и 4 — ножницам, а 5 и 6 — бумаге. Если противник захочет сыграть ещё раз, кость нужно будет, конечно, бросить заново.

При таком нашем поведении у противника будут равные шансы выиграть, проиграть и свести игру вничью. И это не зависит от того, что делает противник. Он может, скажем, пользоваться каким-то сложным законом для определения своего хода, или тоже бросать втайне свою кость, или всегда ходить одинаково, скажем, выбрасывая камень. Но если он не владеет ясновидением (не может видеть результат бросания нашей кости на расстоянии), телекинезом (не может влиять на этот результат) и не жульничает (не опаздывает со своим ходом), то никакие ухищрения ему не помогут. И в среднем, при большом числе повторений игры, количество выигрышей, проигрышей и ничьих у нас будет одинаково.

Вот другая (тоже вполне жизненная) игра.

47 Один из игроков зажимает в кулаке рублёвую монету, другой должен отгадать, что у неё сверху — орёл или решка. Если он отгадал, то за-

бирает монету, если нет — платит рубль штрафа. Как вы думаете, у кого преимущество в этой игре: у загадывающего или отгадывающего?

Можно изобразить правила этой игры в виде таблицы (рис. 23). По вертикали мы указываем ход Загадывающего, и две строки О и Р соответствуют двум вариантам этого хода. Столбцы обозначают ходы Отгадывающего. Числа в таблице говорят, сколько в каждом из четырёх вариантов получает Отгадывающий: в двух клетках, где он отгадал правильно, стоят единицы (он получает рубль), а в двух клетках, где неправильно, стоят минус единицы (он отдаёт рубль).

Таблица выглядит симметрично, и похоже, что игроки здесь в равном положении. (Она не отражает того факта, что Загадывающий делает свой выбор первым, но это ему не помогает — мы предполагаем, что Отгадывающий не подглядывает и не ясновидец.)

Как объяснить равенство игроков более подробно? Представим себе, что Загадывающий делает свой ход случайно, тайно бросая ту же монетку и сохраняя её положение. Тогда в среднем в половине случаев у него будет О, а в половине случаев Р. Отгадывающий может ходить как угодно: всегда говорить что-то одно, или, скажем, чередовать О и Р, или тоже выбирать ход случайно. Но поскольку он монеты не видит, его догадка будет правильной примерно в половине случаев. Выигрышей будет примерно столько же, сколько проигрышей, и в среднем оба игрока останутся при своих.

Аналогичным образом, если Отгадывающий будет бросать монетку и называть то, что на ней выпало, то как бы ни действовал Загадывающий, догадка будет правильной (примерно) в половине случаев.

Тут можно задать сразу много вопросов.

• Почему мы уверены, что при бросании монеты будет примерно половина орлов и половина решек? Часто говорят «по теории вероятно-

Рис. 23. Таблица («матрица») игры (задача 47).

стей», но это не совсем честно: теория вероятностей — это математическая теория, и она не может ничего предписывать реальным монетам. Честный ответ — такова жизнь. (Ещё более сложный вопрос, который мы только упомянем: что значит «примерно»? Насколько сильно должно нарушиться равенство, чтобы мы заподозрили, что с монетой что-то неладно?)

• Ну хорошо, допустим, что в целом орлов и решек примерно одинаково. Но, может быть, среди той части игр, где Отгадывающий говорит «орёл» (например), это равенство нарушается? Если в этой части игр орлов будет больше, то он будет выигрывать. Почему мы уверены, что это не так? На языке теории вероятностей: почему ход отгадывающего и результат бросания монеты независимы! Опять же это не вопрос к математикам: они в принципе не могут судить о том, можно ли увидеть монету в кулаке мысленным взором или предсказать, как упадёт ещё не брошенная монета. (Жизненный опыт подсказывает, что последнее не просто — иначе бы игры в казино выглядели совсем иначе. Хотя игроки, в том числе и такие, как Ф. М. Достоевский, с этим не соглашались и верили в свои системы игры1.)

• Означает ли наш анализ, что не бывает хороших и плохих игроков в орлянку? С одной стороны, не бывает — что же это за хороший игрок, если против простейшей случайной стратегии у него нет никакого преимущества? С другой стороны, если противник не бросает реальную монету, а просто говорит что-то наугад или руководствуется какой-то стратегией, у игрока появляется шанс его перехитрить, найдя какую-то закономерность в его поведении. (Зато при этом можно и самому проиграть, если противник окажется хитрее.)

В следующем примере анализ игры уже требует некоторых расчётов.

48 Двое играют в такую игру. Один зажимает в кулаке рублёвую или двухрублёвую монету, второй пытается угадать, какая монета зажата. Если второй угадал, монета переходит к нему, если нет, то он платит штраф в полтора рубля (рис. 24).

В этой игре за правильную догадку платят рубль или два, а за неправильную берут штраф промежуточного размера.

1 «Вот уже раз двадцать, подходя к игорному столу, я сделал опыт, что если играть хладнокровно, спокойно и с расчетом, то нет никакой возможности проиграть! Клянусь тебе, возможности даже нет! Там слепой случай, а у меня расчет, след(овательно), у меня перед ними шанс» (из письма Ф. М. Достоевского к жене 22 мая 1867 г.).

Рис. 24. Матрица игры «Рубль или два?».

Делает ли это игру честной? Не читая дальше, попытайтесь обдумать этот вопрос. Представьте себе, что сказочный дракон обещает вас отпустить, если вы у него выиграете в серии таких игр (в среднем), и при этом предоставляет вам выбор — отгадывать или загадывать. Есть ли смысл выбирать что-то одно, или шансы одинаковы?

Попытаемся ответить на этот вопрос. Пусть мы загадываем. Если всегда загадывать рубль, то противник может об этом догадаться, и мы будем систематически проигрывать рубль. Ещё хуже, если мы всегда будем загадывать два рубля (а противник об этом догадается). Что же делать? Предыдущая задача подсказывает выход: будем делать ход случайно, бросая монетку (в половине случаев рубль, в половине два). Тогда Отгадывающий будет в половине случаев выигрывать, а в половине проигрывать, и мы останемся при своих.

Убедительно? На самом деле в этом рассуждении есть ошибка. Представим себе, что Отгадывающий всё время называет 2. Тогда он действительно будет в половине случаев выигрывать, а в половине проигрывать, но есть тонкость — он выигрывает два рубля, а проигрывает только полтора. Выиграв одну игру и проиграв другую, Отгадывающий выиграет 1/2 рубля, так что в среднем за игру он будет получать 1/4 рубля.

Так что же нам делать? Естественная идея — делать ходы случайно, но с разной частотой. Сделаем несимметричную монету, которая на одну сторону падает чаще (или разделим круг в рулетке на две неравные части, или ещё что-нибудь). Степень несимметричности может быть разной: можно, скажем, в 90 % случаев загадывать рубль, а в 10 % — два, или как-нибудь ещё. Будем себе представлять «шкалу несимметрии» как отрезок: в левом конце мы всегда загадываем 1, в правом — всегда 2, посередине поровну (рис. 25). Части отрезка пропорциональны вероятностям — скажем, точка, которая делит отрезок в отношении 1 : 3 (считая от лево-

Рис. 25. Диапазон стратегий для Загадывающего

го конца) означает, что единицу мы загадываем втрое чаще, чем двойку (то есть в 3/4 и 1/4 случаев соответственно). И так далее.

Ну хорошо, диапазон стратегий мы нарисовали, но какую выбрать? Давайте прикинем, что будут давать эти стратегии против «чистых» стратегий противника, когда он или всегда выбирает 1, или всегда 2. Пусть Отгадывающий говорит 1. Сколько он выиграет против нашей стратегии? Это зависит от её положения на шкале. Если мы всегда выбираем 1, то он выиграет 1; если мы всегда выбираем 2, то он проиграет 1,5. В промежуточных положениях и его результат будет промежуточным, причём в тех же пропорциях, и на графике получится прямая (рис. 26).

Аналогичный график можно нарисовать и для другой стратегии Отгадывающего (когда он всегда говорит 2); удобно совместить их на одной картинке (рис. 27).

В общем, ничего удивительного: если мы по большей части загадываем 2, то Отгадывающему выгоднее называть 2, и наоборот. Например, если мы загадываем 1 и 2 одинаково часто, то Отгадывающему выгоднее всегда говорить 2, он при этом выигрывает в среднем 0,25 (мы это уже обсуждали).

Теперь самое главное. На графике есть точка, где линии пересекаются. Это значит, что при такой нашей стратегии противнику всё равно, что называть: в обоих случаях его средний выигрыш один и тот же. Как видно из рисунка, этот средний выигрыш немного меньше нуля, так что Отгадывающий и при той, и при другой чистой стратегии будет проигрывать

Рис. 26. Средний выигрыш Отгадывающего, если он всегда говорит 1.

Рис. 27. Выигрыш Отгадывающего для двух его чистых стратегий.

одинаково. Отсюда можно вывести (хотя мы и не будем объяснять это подробно), что так будет и при любой другой стратегии Отгадывающего, если только он не жульничает (говоря математически, если бросание монеты независимо с действиями Отгадывающего).

Можно даже подсчитать пропорции: треугольники на рисунке подобны и относятся как 5 : 7 (вертикальные стороны 2,5 и 3,5). Значит, рублёвые и двухрублёвые монеты должны использоваться в пропорции 7 к 5 (с вероятностями 7/12 и 5/12 соответственно). А выигрыш (точнее, проигрыш, потому что со знаком минус) Отгадывающего будет

Видно, что теория может быть полезной: вместо наивной стратегии, где Загадывающий одинаково часто использовал 1 и 2 и в среднем проигрывал 1/4 за игру, можно воспользоваться научной стратегией и в среднем выигрывать 1/24. Это хорошо, но, может быть, есть и какие-то более выгодные стратегии (не обязательно связанные с бросанием монеты)? На самом деле таких нет.

Чтобы убедиться в этом, покажем, что у Отгадывающего есть стра-

тегия, позволяющая проигрывать в среднем 1/24 в каждой игре. Эта стратегия тоже будет вероятностной: он делает ходы случайно с правильно подобранными вероятностями. Нарисуем на том же графике, сколько он будет выигрывать у различных вероятностных стратегий Загадывающего. Стратегия Отгадывающего, смешивая два его варианта в какой-то пропорции, будет в той же пропорции смешивать и выигрыши, соответствующие этим вариантам. Этой стратегии соответствует какая-то прямая из пучка проходящих через одну точку, показанного на рис. 28 (проверьте!). Среди этих прямых есть горизонтальная. Если Отгадывающий выбирает пропорцию именно так, то он будет проигрывать в среднем 1/24 за игру, независимо от того, загадываем ли мы 1 или 2. Как мы уже говорили, из этого следует, что такой же проигрыш будет против любой стратегии Загадывающего.

Итак, мы нашли цену игры: Загадывающий умеет выигрывать не меньше 1/24, а Отгадывающий — проигрывать не больше 1/24.

Можно заменить картинки вычислениями: если Загадывающий выбирает 1 с вероятностью р (и 2 с вероятностью 1 — р), а Отгадывающий — с вероятностями q (и 1 — g), то средний выигрыш Отгадывающего равен

Рис. 28. Смешанные стратегии для Отгадывающего.

что (проверьте!) равно

из этой формулы видно, что при р = 7/12 результат не зависит от игры Отгадывающего, а при q = 7/12 — от игры Загадывающего. График выигрыша (рис. 29) как функции от р и q будет уже трёхмерным (раньше мы рисовали его сечения); отмеченные на рисунке отрезки прямых как раз и соответствуют найденным вероятностям; если приглядеться, то они находятся немного ниже горизонтальной плоскости — на ту самую величину 1/24, которая является ценой игры.

Проведённый анализ показывает, что игра не совсем честная и выгоднее загадывать, чем отгадывать. Чтобы сделать её честной, надо, видимо, немного уменьшить штраф за неверную догадку. Можете ли вы рассчитать, насколько?

Математическая теория игр такого рода была разработана в середине XX века фон Нейманом и Моргенштерном. Они доказали, что для любой матрицы игры (наши четыре числа можно заменить на любые другие) существует цена игры. То же самое верно и для игр с любым конечным числом вариантов (не только 2). Сейчас этот раздел математики относят к «математической экономике». (Не то чтобы это было уж так полезно

Рис. 29. График среднего выигрыша в зависимости от вероятностей.

для практической экономики, зато такое название облегчает получение финансирования этих исследований.)

Одно время был популярен американский фильм «Игры разума» («Beautiful mind»); прототипом главного героя этого фильма является американский математик Джон Нэш, получивший Нобелевскую премию по экономике как раз за работу в этой области. Он рассматривал более общий класс «игр с ненулевой суммой», когда выигрыш одного игрока не обязательно является проигрышем другого (скажем, они могут сделать такие ходы, что оба проиграют). Нэш определил равновесие для таких игр как пару стратегий с таким свойством: ни одному из игроков не выгодно отклоняться от назначенной для него стратегии, если его противник следует назначенной для него. Нэш доказал, что такая пара всегда существует (но она не обязана быть единственной). К сожалению, авторы фильма вместо вразумительного изложения определений и формулировки теоремы Нэша (отсутствие доказательства им можно простить — у них же фильм, а не сериал) предпочли изображать «духовный мир математика» (без особого успеха, как мне показалось).