Mary пишет: |
Амарант пишет:
" А и Б играют в игру. У них есть шахматная доска , в нижнем левом углу которой стоит ладья. За ход можно двигать ладью на любое количество клеток вверх или вправо. А ходит первым. Кто из них выиграет, если никто не сделает ошибочного хода?"
А выигрывает тот, кто первым достигнет правого верхнего угла? |
Наверно, именно это и имеется в виду.
Я 2 дня назад купил тоненькую книжечку для школьников, посвященную симметрии. Против ожидания, она и для меня оказалась интересной. Она как раз начинается с подобной задачки:
Двое играющих по очереди кладут на круглый стол одинаковые монеты так, чтобы они не касались друг друга. Проигрывает тот, кто не может положить очередную монету. Кто выигрывает в этой игре?
Решение. Выигрывает всегда первый. Он первым ходом кладет монету точно в центр круглого стола и затем симметрично повторяет все ходы второго игрока (имеется в виду центральная симметрия; стол может быть не только круглый, любой центрально-симметричный или зеркально-симметричный подойдет — например, прямоугольный).
Подобное решение и у этой задачи, только здесь выигрывает второй: он повторяет все ходы первого, только в перпендикулярном направлении (если первый подвинул ладью вправо на 2 клетки, то второй двигает вверх тоже на две клетки).
Здесь изначально ладья стоит на диагонали. Если бы она стояла не на диагонали, то выигрывал бы первый игрок, ставя ладью своим первым ходом на диагональ.
Учитывая количество оставшихся свободных клеток по горизонтали и вертикали, задачу можно переформулировать следующим образом:
Есть две кучки монет, в каждой по 7 штук. За 1 ход играющий может взять любое (ненулевое) количество монет, но только из одной кучки. Выигрывает тот, кто берет последнюю монету. Кто выигрывает?
В такой (эквивалентной) постановке задача совершенно очевидна (ответ "второй игрок"; если в кучках было бы неравное число монет, то первый игрок, который своим первым ходом уравнивает кучки). Однако ее можно обобщить, и она становится очень интересной:
Есть n кучек монет, в них вначале лежат
k1, k2, ..., kn
монет соответственно...
и далее аналогично. Интересно, что в такой формулировке нельзя сказать, кто выигрывает — зависит от чисел
k1, k2, ..., kn. Например, пусть
n=3,
k1=6,
k2=4,
k3=2. Тогда выигрывает первый игрок.
Алгоритм выигрыша в этой задаче
очень красивый и использует представление чисел в двоичной системе счисления (полезное упражнение для начинающих программистов — написать программу, которая играет с человеком; если у нее есть выигрыш, то она его не упускает, если нет, то она делает ход, который оставляет позицию максимально сложной).
Также этот вариант игры реализуется на шахматной доске: например, для упомянутых
n=3,
k1=6,
k2=4,
k3=2
ставим на доску 3 белых ладьи и 3 черных друг напротив друга:
белые — на полях a1, b2, c3, черные — на полях a8, b7, с6; за один ход можно подвинуть свою ладью на любое количество клеток вперед (до упора во вражескую ладью; белые и черные ладьи двигаются в противоположных направлениях). Выигрывает тот, кто делает последний ход (проигрывает тот, кому некуда ходить).