Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
BAHO
3 / 3 / 1
Регистрация: 11.10.2012
Сообщений: 78
#1

Задача решаемая методом рекурсии - C++

11.10.2012, 20:42. Просмотров 866. Ответов 6
Метки нет (Все метки)

Помогите решить задачку в си++ методом рекурсии. методом рекурсии приходится решать по прихоти преподавателя((
Проложить полотно железной дороги по кратчайшему, с эконо¬мической точки зрения, пути между пунктами А и Б. На географи¬ческой карте строится некоторая прямоугольная область, где в ле¬вом нижнем углу помещен пункт А, а в правом верхнем углу — пункт Б. Прямоугольная область по горизонтали и по вертикали разделяется на произвольное количество отрезков, и по границам отрезков строится сетка. Для каждой стороны элементарного пря¬моугольника определяется стоимость прокладки пути (рис. 5.1).
Для упрощения решения задачи положим, что путь может про¬кладываться только по границам элементарных прямоугольных областей (т. е. под углом 90°), заранее известна стоимость строи¬тельства по каждому элементарному отрезку, и путь от пункта Б к пункту А прокладывается в направлении справа налево и сверху вниз без петель. Таким образом, каждый возможный путь от пунк¬та А до пункта Б будет представлять собой ломаную линию. Надо проложить такой путь от А к Б, чтобы суммарные затраты на его строительство были минимальны.
0
Миниатюры
Задача решаемая методом рекурсии  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2012, 20:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача решаемая методом рекурсии (C++):

Решение уравнения методом бисекции с использованием рекурсии - C++
Добрый день! Задачу задали в универе... Написать-то написал, сам метод халявный, но с рекурсией что-то запарился. 1....

Вычислить сумму N элементов методом восходящей и нисходящей рекурсии - C++
необходимо вычислить сумму N элементов (целые числа например с 1 до 10) методом восходящей и нисходящей рекурсии.

Методом рекурсии вывести число слево на право. Не использую массивов циклов строк - C++
Методом рекурсии вывести число слево на право. Не использую массивов циклов строк( а только рекурсию и арифметические операции) void...

Задача методом Гаусса - C++
ребят помогите пожалуйста составить программу в С++ метод Гаусса )))

Транспортная задача (методом потенциалов) - C++
В универе задали сделать транспортную задачу. Знания только одного семестра ОП. Сделал заполнение таблицы поиск потенциала и проверку...

Задача (сортировка методом пузырька) - C++
Здравствуйте, помогите понять, что делаю не так. Задача такая:дана ведомость зарплаты сотрудников, в которой указаны табельный номер...

6
DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 296
11.10.2012, 20:55 #2
Поиск в глубину (ширину).
0
BAHO
3 / 3 / 1
Регистрация: 11.10.2012
Сообщений: 78
11.10.2012, 20:56  [ТС] #3
а можете подробней описать что нужно сделать?
0
DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 296
11.10.2012, 21:00 #4
Я сам не знаю, что тут делать надо) Сказал, что первое в голову пришло. Просто я ухожу сейчас)
0
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.10.2012, 23:24 #5
По хорошему эту задачу надо решать каким-нибудь алгоритмом Дейкстры. Если же рекурсия обязательна, то можно извратиться и перебрать все возможные пути в графе с помощью поиска в глубину и выбрать из них минимальный. Но это будет чертовски неэффективно.
0
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
11.10.2012, 23:49 #6
Цитата Сообщение от diagon Посмотреть сообщение
По хорошему эту задачу надо решать каким-нибудь алгоритмом Дейкстры.
согласен на все 100%.

Цитата Сообщение от diagon Посмотреть сообщение
Если же рекурсия обязательна, то можно извратиться и перебрать все возможные пути в графе с помощью поиска в глубину и выбрать из них минимальный.
единственно что могу посоветовать для ускорения вычисления с помощью рекурсии: изначально всем вершинам присваиваем заведомо недостижимое значение (максимальное значение), вершине А присваиваем 0.
При рек. вызове для очередной вершины делаем так: если путь до смежной с ней вершиной уменьшился, то этой смежной вершине уменьшаем путь и вызываем для нее рек. функцию. Если путь остался таким же или больше, то не делаем ничего.
0
BAHO
3 / 3 / 1
Регистрация: 11.10.2012
Сообщений: 78
18.10.2012, 20:41  [ТС] #7
люди добрые... которые сутки у меня ни чего не выходит... можете кода выложить... а то ваще чет ни чего не выходит...
0
18.10.2012, 20:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2012, 20:41
Привет! Вот еще темы с ответами:

Транспортная задача (методом потенциалов) - C++
Доброго времени суток форумчане! Нужна прога по вычислению транспортной задачи методом потенциалов. Пытался сам сделать, но как-то не...

Задача коммивояжера методом локального поиска - C++
Всем доброго времени суток, кто обратил внимание на сия сообщение) Возникла необходимость разработать решение задачи коммивояжера методом...

Задача на сортировку массива методом вставки на С++ - C++
Помогите, пожалуйста, решить задачу. Отсортируйте по возрастанию методом вставки одномерный целочисленный массив, введенный с клавиатуры....

Задача коммивояжера методом динамического программирования - C++
Помогите пожалуйста переделать коммивояжера методом динамического программирования. Пусть n - это количество вершин графа. Тогда в цикле...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru