Контрольные задания > 8. Исполнитель Робот передвигается по клетчатому полю, выполняя команды, которым присвоены номера: 1 – на клетку вверх, 2 – на клетку вниз, 3 – на клетку вправо, 4 – на клетку влево. Между соседними клетками поля могут стоять стены. Если при выполнении очередного шага Робот сталкивается со стеной, то он разрушается. В результате выполнения программы 3242332411 Робот успешно прошёл из точки А в точку Б. Какую программу необходимо выполнить, чтобы Робот вернулся из точки Б в точку А по кратчайшему пути и не подвергнулся риску разрушения?
a) 41
б) 4131441322
в) 2231441314
г) 241314
д) 14
Вопрос:
8. Исполнитель Робот передвигается по клетчатому полю, выполняя команды, которым присвоены номера: 1 – на клетку вверх, 2 – на клетку вниз, 3 – на клетку вправо, 4 – на клетку влево. Между соседними клетками поля могут стоять стены. Если при выполнении очередного шага Робот сталкивается со стеной, то он разрушается. В результате выполнения программы 3242332411 Робот успешно прошёл из точки А в точку Б. Какую программу необходимо выполнить, чтобы Робот вернулся из точки Б в точку А по кратчайшему пути и не подвергнулся риску разрушения?
a) 41
б) 4131441322
в) 2231441314
г) 241314
д) 14
Ответ:
Правильный ответ: г) 241314
Объяснение:
Исходная программа: 3242332411
Обратная программа, меняем направление:
- 3 (вправо) -> 4 (влево)
- 2 (вниз) -> 1 (вверх)
- 4 (влево) -> 3 (вправо)
- 1 (вверх) -> 2 (вниз)
Заменяем все команды на противоположные:
3 -> 4
2 -> 1
4 -> 3
1 -> 2
И получаем последовательность:
4131441322
Инвертируем ее: 2231441314
Оптимальный путь, если не учитывать стены будет: 41, при этом в оригинальной последовательности команд первые две и последние две команды можно сократить, и выйдет 241314.