![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
madrabbit |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
Здравствуйте.
Помогите пожалуйста с алгоритмом. хотя бы просто на пальцах или отправьте к соответствующим ссылкам. Интересует следующий алгоритм: Предположим задана некоторая матрица размерности N на N( положим поле больше шахматной доски), а также координаты двух точек(элементы массива a[i,j], b[i1,j1]), Задача. Найти оптимальный путь межды этими точками "шахматным конем". Решал так: забил всю матрицу нулями, два элемента - "1". функция проверки "не является ли элемент массива =1. Если нет, то в функцию передаются новые координаты(причем 8 различных точек, куда может шагнуть конь с текущего места). таким образом это приводит к многократному зацикливанию и росту рекурсивных вложений... посоветуйте принцип решения. каким способом, например, можно оборвать вложенную процедуру при приближении к краям поля. Ну и вообще... задач однотипных я знаю много. Интересует сам принцип и средства решения. Хотелось бы самому дойти, но видно опыта самоучки маловато... спасибо вам заранее за помощь! :molitva: Сообщение отредактировано: madrabbit - 18.12.2004 17:53 |
![]() ![]() |
Digitalator |
![]()
Сообщение
#2
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: ![]() ![]() ![]() |
А нафиг тут вообще рекурсия нужна? ээ вообщето она никогда ненужна.........
Используй так называемое "динамическое програмирование" для решения этой и уймы других подобных задач. подробности спрашивай у Яндекса. Сообщение отредактировано: Digitalator - 18.12.2004 17:55 -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 12:32 |