IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> рекурсивная работа с матрицей, задачка с шахматным конем
madrabbit
сообщение 18.12.2004 17:26
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


Здравствуйте.
Помогите пожалуйста с алгоритмом. хотя бы просто на пальцах или отправьте к соответствующим ссылкам.
Интересует следующий алгоритм:

Предположим задана некоторая матрица размерности N на N( положим поле больше шахматной доски), а также
координаты двух точек(элементы массива a[i,j], b[i1,j1]),

Задача. Найти оптимальный путь межды этими точками "шахматным конем".


Решал так:
забил всю матрицу нулями, два элемента - "1".
функция проверки "не является ли элемент массива =1. Если нет, то в функцию передаются новые координаты(причем 8 различных точек, куда может шагнуть конь с текущего места). таким образом это приводит к многократному зацикливанию и росту рекурсивных вложений...

посоветуйте принцип решения.
каким способом, например, можно оборвать вложенную процедуру при приближении к краям поля. Ну и вообще... задач однотипных я знаю много.
Интересует сам принцип и средства решения.
Хотелось бы самому дойти, но видно опыта самоучки маловато...

спасибо вам заранее за помощь! :molitva:

Сообщение отредактировано: madrabbit - 18.12.2004 17:53
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
APAL
сообщение 29.01.2005 15:02
Сообщение #2


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Для начала было бы неплохо ввести еще одно значение матрицы - 3, т.е. то поле куда конь уже ходил, чтобы не рассматривать повторы.
Вложенная процедура обрывается командой EXIT;


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
madrabbit   рекурсивная работа с матрицей   18.12.2004 17:26
Digitalator   А нафиг тут вообще рекурсия нужна? ээ вообщето она...   18.12.2004 17:55
volvo   Digitalator Еще один такой пост - накажу. Если че...   18.12.2004 17:58
madrabbit   volvo. помоги советом :rolleyes:   18.12.2004 18:01
Digitalator   Ух какие мы злые, а с чего это? Человек не говорит...   18.12.2004 18:07
madrabbit   спасибо вам ребята... :(   18.12.2004 18:37
Digitalator   Эй, чувак, не расстраивайся! Я тебе говорю - ...   18.12.2004 18:43
APAL   но можно... Если на пальцах: 1. Для начальной п...   18.12.2004 18:54
Digitalator   имхо с рекурсией все усложняеться и больше места д...   18.12.2004 19:06
madrabbit   спасибо. на самом деле я все так и делал. (описал...   18.12.2004 20:48
APAL   Обрывать принудительно не надо - закончить процед...   19.12.2004 12:37
APAL   Для начала было бы неплохо ввести еще одно значени...   29.01.2005 15:02
madrabbit   ВОПРОС! не пойму почему не получается. 8( врод...   29.01.2005 15:11
volvo   Тогда попробуй генерировать динамическую матрицу ...   17.02.2005 15:38
madrabbit   так я так и делаю, каждый раз в рекурсию переда...   18.02.2005 1:16
volvo   Ну так вот что я нашел: procedure recurse(va...   18.02.2005 1:29
madrabbit   спасибо. я приблизительно это и имел ввиду. А име...   18.02.2005 18:50
volvo   Type matrix = array[1 .. 100] of integer...   18.02.2005 18:58
madrabbit   Огромное спасибо, ну наконец-то я понял! Тепер...   19.02.2005 14:08
volvo   Посмотри вот это... FAQ: Динамические массивы FA...   19.02.2005 14:23


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 12:39
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"