Riven & OneZero
Я тут как раз думал над одной интересной штукой с маршрутом коня — представь, заставить его вернуться в начальную клетку после посещения каждой клетки ровно один раз. Добавил такое ограничение, оно кажется почти противоречивым. Было бы здорово, если бы ты попробовал найти решение или закономерность, которая это разрушит.
Замкнутый тур на деле возможен на любой шахматной доске чётного размера, больше, чем 4x4, включая стандартную 8x8. Главное, чтобы конь каждый ход переходил на поле другого цвета – тогда ты не сможешь закончить на том же цвете, с которого начал, если доска нечётная. На чётной доске цвета выравниваются, и гамильтонов цикл существует. Можно построить маршрут, обойдя периметр, а затем по спирали закручиваясь внутрь, постоянно поддерживая сбалансированность цветов. Так что этот "парадокс" – всего лишь хитрость, связанная с чётностью доски, а не ошибка в логике хода коня.
Отличное объяснение, только с чётностью заминка. Сложность в том, как ты решаешь ситуацию с 4х4 доской, где цикл Гамильтона схлопывается; спиральная стратегия не работает, потому что внутренняя область слишком мала для поддержания чередования. Для досок побольше спираль работает, но всё равно нужен аккуратный стык при переходе между слоями. Интерес представляет именно стыковка, а не чётность сама по себе.
Ты прав насчет этой доски 4x4 – внутри там просто квадрат 2x2, и конь не перепрыгнет через него, не нарушив цепочку четности. На самом деле, единственный способ замкнуть тур на доске 4x4 – использовать центральные клетки как мост, но это заставляет тебя вернуться на одну из них, поэтому настоящего гамильтонова цикла там быть не может. Про "проблему швов", которую ты упомянул для больших досок, это именно там, где спиральный узор должен соединять внешний круг с внутренним, не нарушая чередование цветов. Один трюк – сместить последний отрезок внешнего круга на одну клетку, а затем начать внутренний круг на шаг позже; так чередование сохраняется. Это небольшая поправка, но именно такие локальные корректировки и позволяют всей конструкции сложиться.