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

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

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

> прохождение лабиринта с помощью рекурсии, бинарная матрица
сообщение
Сообщение #1


Гость






Доброго времени суток !!


Народ , помогите пожалуйста , нужно сделать программу :
дана двоичная матрица из 0 и 1 , в рандомной позиции появлятся человечек , которому нужно выйти в правый нижний угол , идти он может только по тем цифрам , на котрой сначала появился (то есть если появился на 1 то только по еденицам). Если выхода нет то нужно вывести на экран что нет выхода . матрица задается рандомно.
Программа должна быть сделана при помощи рекурсии .



Заранее спасибо.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

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

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


Ну смотри.
псевдокод
функция шаг(х,у) булен
начало
отметим, что в этой точке мы были.
если х=(длина лабиринта) и у=(ширина лабиринта), то результат = Правда, а если нет, то
если на севере свободно, то результат = шаг(х,у-1), если нет, то
если на западе свободно, то результат = шаг(х+1,у), если нет, то
если на юге свободно, то результат = шаг(х,у+1), если нет, то
если на востоке свободно, то результат = шаг(х-1,у), если нет, то
результат = ложь
конец
свободно = такая же цифра и мы там не были
если результат работы да, то тогда выход есть. А как поиск пути найти, я думаю ты догадаешься

P.S. в алгоритме не уверен.

Сообщение отредактировано: St@senk@ -


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


Профи
****

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

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


Цитата(St@senk@ @ 22.03.2007 21:02) *
отметим, что в этой точке мы были.
если х=0 или у=0 или х=(длина лабиринта) или у=(ширина лабиринта), то результат = Правда, а если нет, то
...
P.S. в алгоритме не уверен.
Направление рассуждения абсолютно верное, но не надо отмечать был ты в той или иной точке или не был. Нужно смотреть совпадение координат с первоначальной точкой обхода, когда вышел к границе в самом начале. Более того, нужно учесть, что таких совпадений может быть несколько!
И внимательно читаем условие: "человечек , которому нужно выйти в правый нижний угол "

ЗЫ: Просьба к автору темы - поподробней опишите как человечек может ходить?

ДА! Совсем забыл... у человечика должно быть "направление движения" и его все время должно тянуть в какую-то сторону (или по часовой, или против). Т.е. использовать абсолютные понятия север, восток, юг и запад нельзя.

Сообщение отредактировано: hiv -


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Positiv   прохождение лабиринта с помощью рекурсии   22.03.2007 17:58
hiv   Народ , помогите пожалуйста , нужно сделать програ…   22.03.2007 18:19
positiv   мне надо сама процедура поиска пути , хелп   23.03.2007 0:06
St@senk@   Ну смотри. псевдокод функция шаг(х,у) булен начало…   23.03.2007 1:02
hiv   отметим, что в этой точке мы были. если х=0 или у=…   23.03.2007 13:27
Алена   FAQ -> Переборные алгоритмы (чуть-чуть подкорре…   23.03.2007 6:06
St@senk@   ну тогда, алгоритм, который проходит через все дос…   23.03.2007 16:16
Positiv   человек может ходить только по горизонтали или по …   23.03.2007 17:28
St@senk@   ну тогда мой последний алгоритм должен работать...   23.03.2007 17:57
hiv   ну тогда мой последний алгоритм должен работать...…   23.03.2007 22:11
Positiv   а где в этом алгоритме рекурсия ?   23.03.2007 22:41
St@senk@   Hiv, нет, твой алгоритм отличается от моего :) и в…   24.03.2007 0:05
Positiv   объясните плз подробнее , не совсем понятно , по а…   24.03.2007 14:12
Lapp   positv, чем тебя не устроила ссылка Алены? Там все…   24.03.2007 14:40
Positiv   'Lapp' . прога по ссылке алены вообще не…   25.03.2007 2:30
Lapp   'Lapp' . прога по ссылке алены вообще н…   25.03.2007 14:09
Гость   когда запускаешь программу алены , так понимаю над…   25.03.2007 21:28
St@senk@   Чтобы Ввы мне поверили, то вот реализация моего ал…   24.03.2007 14:57
St@senk@   Там нужно сначала ввести матрицу, а потом координа…   25.03.2007 21:29
Positiv   St@senk@ . надо что бы с рекурсией было , а я не …   25.03.2007 21:39
St@senk@   :) Positiv А она там уже есть :) res:=res o…   25.03.2007 21:57
Гость   'St@senk@' . точняк , че то я туплю дико п…   25.03.2007 22:16


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

 





- Текстовая версия 28.03.2024 15:40
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name