Робота случайно заперли в углу комнаты 3 × 3. Робот не любит стоять на месте, а самый длинный путь, который можно пройти без остановок, ведёт в противоположный по диагонали угол. Помоги роботу туда добраться.
Задача сводится к поиску длинного пути, который заходит во все 9 клеток 3×3 ровно один раз и заканчивается в противоположном по диагонали углу. Это и есть гамильтонов путь на сетке 3×3. Приведу один конкретный путь; при желании можно повернуть/отразить его под другой стартовый угол.
Путь (начало в верхнем левом углу, конец в нижнем правом углу)
- Координаты клеток: (ряд, столбец) от 1 до 3.
- Порядок посещения:
(1,1) → (1,2) → (1,3) → (2,3) → (2,2) → (2,1) → (3,1) → (3,2) → (3,3)
Или в виде последовательности направлений: вправо, вправо, вниз, влево, влево, вниз, вправо, вправо.
Пояснение шага по шагу
- шаг 1: начинаем в левом верхнем углу (1,1);
- шаг 2–3: идём вдоль верхней строки вправо до (1,3);
- шаг 4: спускаемся вниз к правой середине (2,3);
- шаг 5: идём влево по второму ряду до центра (2,2);
- шага 6: идём ещё влево до левого конца второго ряда (2,1);
- шаг 7: спускаемся вниз до нижнего левого угла (3,1);
- шаг 8: идём вправо по нижней строке до последней клетки (3,3), которая является диагонально противоположным углом к началу.
Проверка
- Всего посещаем 9 клеток, без повторений.
- Конечная клетка (3,3) является diagonally противоположным углом по отношению к начальной (1,1).
- Шагов ровно 8, что является максимально возможной длиной простого пути по 3×3 сетке без повторов.
Дополнительные варианты
- Путь можно получить и другим способом, выполняя «змейку» по другим углам. Например, начиная в нижнем левом угле и следуя зеркально или поворотами, получите аналогичный длинный путь к верхнему правому углу.
- Если стартовый угол другой, достаточно применить соответствующее вращение или отражение к вышеуказанному маршруту.
Если нужно, могу привести аналогичные маршруты под любой стартовый угол или показать визуально на текстовой сетке.