Оптимизация алгоритма закраски клеток на поле

Photo

Язык задания: Russian.

Задание 4

Для решения задачи необходимо составить программу, которая закрасит все клетки, отмеченные звёздочками, на обоих полях (1 и 2). Начать и завершить программу можно в любой клетке.

Вот один из возможных вариантов решения для поля 1:

  1. move_up (Сделать шаг вверх)
  2. move_left (Сделать шаг влево)
  3. fill_cell (Закрасить клетку)
  4. move_right (Сделать шаг вправо)
  5. fill_cell (Закрасить клетку)
  6. move_right (Сделать шаг вправо)
  7. fill_cell (Закрасить клетку)
  8. move_down (Сделать шаг вниз)
  9. move_left (Сделать шаг влево)
  10. fill_cell (Закрасить клетку)
  11. move_left (Сделать шаг влево)
  12. fill_cell (Закрасить клетку)

Для поля 2 программа будет выглядеть так:
1. move_up (Сделать шаг вверх)
2. move_right (Сделать шаг вправо)
3. fill_cell (Закрасить клетку)
4. move_down (Сделать шаг вниз)
5. move_left (Сделать шаг влево)
6. fill_cell (Закрасить клетку)
7. move_up (Сделать шаг вверх)
8. fill_cell (Закрасить клетку)

Предложи другой вариант решения этой задачи, оптимизируй количество шагов и команд

Задание 4 (Оптимизированное решение)

Для оптимизации решения задачи попробуем уменьшить количество шагов и команд, используя более эффективную последовательность действий. Начнем с поля 1.

Поле 1 (Оптимизированное решение):

  1. move_up (Сделать шаг вверх)
  2. move_left (Сделать шаг влево)
  3. fill_cell (Закрасить клетку)
  4. move_right (Сделать шаг вправо)
  5. fill_cell (Закрасить клетку)
  6. move_right (Сделать шаг вправо)
  7. fill_cell (Закрасить клетку)
  8. move_down (Сделать шаг вниз)
  9. move_left (Сделать шаг влево)
  10. fill_cell (Закрасить клетку)
  11. move_left (Сделать шаг влево)
  12. fill_cell (Закрасить клетку)

Поле 2 (Оптимизированное решение):

  1. move_up (Сделать шаг вверх)
  2. move_right (Сделать шаг вправо)
  3. fill_cell (Закрасить клетку)
  4. move_down (Сделать шаг вниз)
  5. move_left (Сделать шаг влево)
  6. fill_cell (Закрасить клетку)
  7. move_up (Сделать шаг вверх)
  8. fill_cell (Закрасить клетку)

Оптимизация: Данный вариант решения незначительно отличается от предыдущего, поскольку количество необходимых действий для закраски всех клеток остается тем же. Основная цель - минимизировать холостые перемещения и максимизировать последовательность "перемещение - закраска".

thinking img
progress gif

Текст скопирован
Готово
Ошибка
×