где n — размерность куба, а k — число, показывающее, сколько единиц укладывается в длине его ребра.
В старинной японской игре го-моку (пять камешков), и поныне не утратившей своей популярности на Востоке, используют обычную доску для игры в го (квадратная доска—19 клеток на 19).
Игроки по очереди ставят фишки на пересечение вертикальных и горизонтальных линий, разбивающих доску на квадраты, до тех пор пока у одного из них пять фишек не окажутся расположенными на одной вертикали, горизонтали или диагонали. Каждый игрок имеет право выставлять любое число фишек. Передвигать выставленные на доску фишки запрещается. Знатоки го-моку считают, что игрок, делающий первый ход, всегда может обеспечить себе выигрыш, но, насколько мне известно, доказательство этого утверждения нигде не публиковалось. В восьмидесятых годах прошлого века го-моку была распространена в Англии под названием го-банг.
Иногда в го-банг играют на обычной шахматной доске, причем каждый игрок имеет право выставить 12 или 15 фишек. Если, выставив весь запас фишек, никто из игроков не добился победы, фишки разрешается передвигать на одну клетку в любом направлении.
Были построены даже машины для игры в крестики и нолики.
Любопытно заметить, что первый робот для игры в крестики и нолики был изобретен (хотя и не был построен) еще в прошлом веке англичанином Ч. Баббеджем, одним из пионеров вычислительной техники. Баббедж намеревался выставить свою машину в Лондоне, чтобы собрать средства для проведения более важных работ, но, узнав о финансовом крахе, постигшем действовавшую в то время в Лондоне выставку «курьезных» машин (на которой среди прочих экспонатов демонстрировались «говорящая» машина и машина, сочинявшая оды на латыни), отказался от своих планов.
Выбор одного из двух одинаково выигрышных ходов робот Баббеджа производил на основе совершенно нового принципа: машина непрерывно подсчитывала число выигранных ею партий и, если ей приходилось выбирать между ходами А и В, узнавала четность текущего числа: при четном числе выигранных партий она выбирала ход А, при нечетном — ход В. Если выбор нужно было произвести из трех равных по силе ходов, робот Баббеджа делил число выигранных им партий на 3 и в зависимости от того, какой остаток получался при делении — 0, 1 или 2, — выбирал один из трех ходов.
«Очевидно, что таким способом можно производить выбор при любом числе условий, — писал Баббедж. — Любознательному наблюдателю… долго пришлось бы следить за игрой робота, прежде чем он понял бы принцип, на котором основано его действие».[10]
К сожалению, после Баббеджа не осталось никаких записей о том, что он называл «простыми» механическими деталями своей машины, поэтому об устройстве ее можно только догадываться. В его архиве сохранилась лишь запись о том, что он представляет себе такой автомат «в виде фигур двух детей, играющих друг с другом в крестики и нолики. Рядом с детьми стоят фигуры барашка и петуха. Выигравший ребенок хлопает от радости в ладоши, петух кукарекает, барашек начинает блеять, а проигравший ребенок горько плачет, заламывая в отчаянии руки». С меньшей фантазией была задумана машина для игры в крестики и нолики, демонстрировавшаяся в 1958 году на Португальской промышленной выставке в Лиссабоне: выиграв, она радостно хохотала, а проиграв (по-видимому, из-за включения специальной цепи «плохой игры»), ворчала.
Может показаться, что составление программы, позволяющей цифровой вычислительной машине играть в крестики и нолики, или конструирование для этой же цели специального вычислительного устройства — дело очень простое. И это, действительно, будет так, пока вы не захотите сконструировать робота-гроссмейстера, который выигрывал бы у неопытных игроков максимальное число игр. Трудность заключается в том, чтобы угадать, какой ход новичок сделает с наибольшей вероятностью. Разумеется, он не будет делать совсем случайных ходов, но насколько хитрым окажется новичок — неизвестно.
Чтобы вы могли получить представление о том, какие трудности здесь возникают, предположим, что новичок делает ход на клетку 8. Робот вполне мог бы ответить не слишком хорошим ходом, заняв клетку 3. При игре против знатока крестиков и ноликов такая ошибка могла бы оказаться роковой, но при игре с противником «средней квалификации» вряд ли следует ожидать, что он сразу же ответит ходом, обеспечивающим ему победу, и займет клетку 9. Четыре из шести оставшихся ходов ведут к проигрышу противника. В самом деле, у противника наверняка появится сильное искушение пойти на клетку 4 и подстроить этим ходом роботу сразу две ловушки.
К сожалению, планам противника не суждено сбыться: робот легко может избежать ловушек, ответив сначала ходом на клетку 9, а затем на клетку 5. Может оказаться, что на практике при такой довольно безрассудной игре машина будет одерживать победу чаще, чем при спокойной тактике, почти заведомо приводящей к ничьей.
Истинный мастер игры в крестики и нолики, будь то человек или робот, должен не только знать наиболее вероятные ответные ходы неопытного игрока (их нетрудно установить, собрав статистические данные об уже сыгранных партиях), но и уметь анализировать стиль игры своего партнера, чтобы определить, какие ошибки тот склонен совершать особенно часто. Следует учесть и то обстоятельство, что новичок от партии к партии совершенствует свое мастерство, но здесь «простая» игра в крестики и нолики заставляет нас погрузиться в дебри весьма нетривиальных проблем теории вероятностей и психологии.
Английское название игры в крестики и нолики — тик-так-тоу — пишется и произносится по-разному. Согласно «Оксфордскому слословарю стихов Матушки-гусыни»[11] название тик-так-тоу происходит от старинной английской детской считалочки:
Я знаю многих любителей крестиков и ноликов, которые ошибочно полагают, что самое главное — это научиться неизменно выигрывать, и считают, что они уже постигли все тайны этой игры.
Истинный же мастер игры в крестики и нолики должен уметь использовать малейшее преимущество, возникающее даже в тяжелых для него ситуациях. Следующие три примера помогут читателю уяснить сказанное. Первый ход во всех трех партиях делается на одну из клеток 2, 6, 8, и 4.
Если вы начинаете с хода X8, а противник отвечает вам ходом О2, то вторым ходом вам лучше всего пойти на четвертую клетку (Х4). Этот ход приводит к выигрышу в четырех из шести возможных ответных ходов противника. Помешать вам выиграть противник может лишь ходом О7 или О9. Если противник сначала пошел Х8, а вы ответным ходом заняли одну из нижних угловых клеток, например О9, то вы еще можете надеяться на победу: противнику достаточно совершить любой из ходов Х2, Х4 или Х7.
Если противник делает первый ход Х8, то ответный ход О5 может привести к интересному развитию партии: если противник вторым ходом занимает клетку 2 (Х2), то вы можете даже позволить ему выбрать за вас ту клетку, которую вы займете при следующем ходе. При любом вашем ходе выигрыш вам обеспечен!
Рассказывая о разновидности игры в крестики и нолики, любимой древними римлянами, в которой фишки разрешалось передвигать с клетки на клетку, мы упоминали о том, что игрок, заняв центр доски, всегда выиграет. Для тех читателей, кого это интересует, приводим примерный ход двух партий в древнеримские крестики и нолики.
10
Babbage С. Passages from the Life of Philosopher. — London: 1864, pp. 467–471.
11
Oxford Dictionary of Mother Goose Rhymes. — 1951, p. 406.
Сборники «Стихи Матушки-гусыни» соответствуют издаваемым у нас сборникам прибауток. Некоторые из «Стихов Матушки-гусыни» были переведены на русский язык С. Я. Маршаком и вышли в сборнике «Английские народные песенки».
12