Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Задача Pascal

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Splint



Зарегистрирован: 25.02.2008
Сообщения: 5

СообщениеДобавлено: Пн Фев 25 2008 17:44    Заголовок сообщения: Задача Pascal Ответить с цитатой

У кого-нить есть идеи по решению этой задачи.
Задача: Необходимо решить с помощью рекурсии.
Имеется n населенных пунктов, пронумерованных от 1 до n. Некоторые пары пунктов соединены дорогами. Определить, можно ли попасть по этим дорогам из 1-го пункта в n-й. Информация о дорогах задается в виде последовательности пар чисел i и j (i<j), указывающих, что i-й и j-й пункты соединены дорогой.

Заранее СПАСИБО!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Bjorndalen



Зарегистрирован: 18.07.2007
Сообщения: 29

СообщениеДобавлено: Ср Фев 27 2008 16:05    Заголовок сообщения: Ответить с цитатой

Я бы решал эту задачу следующим образом:
1. Встаем на пункт 1;
2. Выбираем ближайший путь (например из 1-7, 1-3 и 1-48 выбираем 1-3);
3. Переходим по выбранному пути на следующий пункт (в нашем случае 3), при этом сохраняем всю последовательность(П) пунктов от начала до текущего (то есть храним 1, 3);
4. Для каждого следующего пункта придерживаемся правил:
а) Если доступных путей нет, то возвращаемся в предыдущий пункт, последний использованный путь удаляем из списка доступных и корректируем последовательность(П);
б) Проверяем не встречался ли этот пункт в нашей последовательности (П), если да (зацикливание), то выполняем те же действия, что при условии "а)";
в) Берем ближайший доступный путь и переходим по нему (см. 2);
5. Действия повторяем до тех пор, пока либо не достигнем пункта N либо не останется доступных путей из пункта 1.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mytilus Galloprovincialis



Зарегистрирован: 30.08.2005
Сообщения: 358
Откуда: откуда все люди родятся

СообщениеДобавлено: Чт Фев 28 2008 07:59    Заголовок сообщения: Ответить с цитатой

Одновременно с этим ведем точно такой маршрут от конечного пункта к начальному и ищем совпадения в обоих маршрутах. Тогда положительный ответ (если он существует) найдется быстрее.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Bjorndalen



Зарегистрирован: 18.07.2007
Сообщения: 29

СообщениеДобавлено: Пт Мар 07 2008 17:13    Заголовок сообщения: Ответить с цитатой

Цитата:
Mytilus Galloprovincialis Добавлено: Чт Фев 28 2008 10:59

Одновременно с этим ведем точно такой маршрут от конечного пункта к начальному и ищем совпадения в обоих маршрутах. Тогда положительный ответ (если он существует) найдется быстрее.


Не совсем понял, что подразумевается под "одновременно"?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Mytilus Galloprovincialis



Зарегистрирован: 30.08.2005
Сообщения: 358
Откуда: откуда все люди родятся

СообщениеДобавлено: Пт Мар 07 2008 18:43    Заголовок сообщения: Ответить с цитатой

Действительно, некорректно выразился. Я имел в виду что чередовать движения "от начального - к конечному" и "от конечного к начальному", например, пошагово.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Bjorndalen



Зарегистрирован: 18.07.2007
Сообщения: 29

СообщениеДобавлено: Вт Мар 11 2008 17:17    Заголовок сообщения: Ответить с цитатой

-> Mytilus Galloprovincialis
Возможна такая ситуация, что существует более одного пути и тогда может получиться, что мы по разным путям придем к концу (началу), затратив при этом вдвое больше времени! Или вообще придем в тупик в одном из направлений...
Так что на, мой взгляд, так делать не следует!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...