Лабиринт, pдача на рекурсию или ..? |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Лабиринт, pдача на рекурсию или ..? |
xxx000 |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
Лабиринт размером M x N состоит из комнат размером 1 x 1 и стен размером 1 x 1. Дан план лабиринта, на котором цифрой 1 отмечены стены, а цифрой 0 - комнаты.
Выяснить, сможет ли человек выйти из лабиринта, если его поместить в комнату с координатами (A, B)? Порядок ввода исходных данных: M N p11 p12 ... p1N p21 p22 ... p2N . . . pM1 pM2 ... pMN A B Здесь M - количество строк на рисунке плана, N - количество столбцов на рисунке плана, p(i, j) - цифра ноль или один, соответствующая клетке плана с координатами i, j. A, B - координаты человека в лабиринте. Порядок вывода результатов: Да | Нет Пример ввода: 10 10 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 2 2 Пример вывода: Да Эту задачу надо решать рекурсией?? Сообщение отредактировано: xxx000 - |
volvo |
Сообщение
#2
|
Гость |
Не надо, а можно... Можно - рекурсией, можно - без рекурсии. Как тебе удобнее.
|
xxx000 |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: 0 |
|
Unconnected |
Сообщение
#4
|
mea culpa Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
Цитата А как без рекурсии, рекурсией она по времени не проходит. Про время сначала вообще ни слова не было.. Может, покажешь, как решал рекурсией? Задача интересная, но я вот тоже не понимаю, как итеративно решить можно. Может, дерево строить надо. Сообщение отредактировано: Unconnected - -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Lapp |
Сообщение
#5
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Про время сначала вообще ни слова не было.. Не только про время - ни слова про ограничения на величины M и N.. Догадывайтесь сами, дорогие друзья, и делайте выводы - рекурсей решать или нет.. Никакого уважения к собеседникам. Вообще, этот товарищ со значащим именем xxx000 все равно не особо заботится о том, что ему скажут, и не любит отвечать.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
TarasBer |
Сообщение
#6
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> А как без рекурсии, рекурсией она по времени не проходит.
Рекурсия - самый быстрый способ обхода, вообще-то. Просто не надо обходить клетки, в которых уже был. -------------------- |
Lapp |
Сообщение
#7
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Рекурсия - самый быстрый способ обхода, вообще-то. Несколько странное утверждение. Рекурсия не есть алгоритм. Это всего лишь способ программирования. И рекурсию, как и явные итерации, можно проводить по-разному.. Хотя, я не стану утверждать, что этот способ не имеет обратного влияния на алгоритм. Но, безусловно, постоянные вызовы поцедур и дерганье стека, сильно замедляет программу (и ест память). Впрочем, все эти разговоры все равно никому не нужны. Автор темы больше не покажется, проверено. До следующей "рдачи" (С), в которой он снова не даст достаточно данных.. )) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Unconnected |
Сообщение
#8
|
mea culpa Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
Да, кажется, действительно ест. Сделал так:
{$APPTYPE CONSOLE} , при размерах поля 10*10 вылетает с переполнением стека. А если урезать как минимум до 7*10, то не вылетает, и даже выдаёт правильный результат. Хотя, может это я чего намудрил) ADDED: да, что-то совсем не то я сделал.. Мысля пришла опосля. Сообщение отредактировано: Unconnected - -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Unconnected |
Сообщение
#9
|
mea culpa Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
{$APPTYPE CONSOLE} Вот так вроде лучше, не вылетает и на больших полях (20*10 пробовал). -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
Сообщение
#10
|
Гость |
Цитата не вылетает и на больших полях Правда и ответ неверный выдает, но это уже мелочи 10 10 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 2 2 Чего должно вывести? А выводит? |
Unconnected |
Сообщение
#11
|
mea culpa Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
"Нет" выводит.. Как и должно.
Сообщение отредактировано: Unconnected - -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
Сообщение
#12
|
Гость |
|
Unconnected |
Сообщение
#13
|
mea culpa Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
Мм.. я на D2007 компилирую, может, в этом дело? Сейчас ещё раз скопировал с форума код и входные данные - всё равно нет. Качаю FPC, на нём попробую.
//Собсно, тут тоже алгоритм неправильный. Сообщение отредактировано: Unconnected - -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Unconnected |
Сообщение
#14
|
mea culpa Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
{$APPTYPE CONSOLE} Тут правильный. -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Archon |
Сообщение
#15
|
Профи Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: 24 |
-------------------- Close the World...txeN eht nepO
|
Текстовая версия | 11.01.2025 6:07 |