Содержание
- 2. Заданное выражение Реализовать алгоритм решения задачи о поиске последовательности перемещений коня на шахматной доске размера m
- 3. Алгоритм Заданное выражение является разновидностью задачи о ходе коня (Knight's tour), однако мы не связаны с
- 4. Алгоритм Мы можем выстроить алгоритм, основанный на обходе в глубину с некоторыми оптимизациями К примеру, не
- 5. Алгоритм При очередном выборе следующей клетки мы базируемся на информации о уже посещенных из возможных
- 6. Алгоритм Поскольку фигура коня может передвигаться по определенному правилу, будем вычислять доступные шаги посредством следующего списка
- 7. Реализация Для начала определим несколько вспомогательных функций Первой идет numlist, возвращающая список целых числе от 1
- 8. Реализация Функция concat. Принимает на вход список l и возвращает соединение всех его внутренних элементов Функция
- 9. Реализация Наконец начинаем описывать целевую функцию knight, принимающую размер поля в качестве аргументов Имея размеры поля
- 10. Реализация В локальной области видимости определим несколько контекстно-зависимых функций. Функция is-visited возвращает t если искомая клетка
- 11. Реализация Функция next-step принимает на вход текущую ветку перемещений Возвращает все не посещенные точки, в которые
- 12. Реализация Далее идет функция next-branches, возвращающая слияние доступной ветки перемещения с текущей Функция is-branch-full позволяет закончить
- 13. Реализация Своеобразной точкой входа и последней локальной функцией является функция move. Она проводит рекурсивный проход по
- 15. Скачать презентацию