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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.87
Mila_mali
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 14
#1

рекурсивный алгоритм - C++

31.08.2010, 02:58. Просмотров 3067. Ответов 22
Метки нет (Все метки)

Уважаемые программисты! Есть задача: разработать рекурсивный алгоритм на с++ для нахождения самого длинного несамопересекающегося пути коня на доске 6*6. Я рекурсию плохо понимаю. Подскажите, что именно должна делать рекурсивная функция.
 Комментарий модератора 
Не нужно в теме, посвящённой решению одной задачи размещать другую, пусть и в чём-то сходную.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2010, 02:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос рекурсивный алгоритм (C++):

Рекурсивный алгоритм F - C++
Привет всем! Помогите пожалуйста как решается данная функция, если F = 6. Вот код программы: #include <iostream> int F(int n)...

рекурсивный алгоритм - C++
задание было такое (я не раз обращался с ним уже): построить алгоритм вычисления значения аргумента exp(x) с точностью до "эпсилон" с...

рекурсивный алгоритм - C++
В общем я уже намучился с этим заданием... Дело такое, алгоритм составлен, но не совсем такой, какой нужен #include <iostream> #include...

Рекурсивный алгоритм - C++
Даны натуральные числа "N" и "M" надо решить с помощью с++ не могу переставить с этим кодом с++ #include <stdio.h> #include...

Рекурсивный алгоритм - C++
помогите плиз представить в рекурсивный алгоритм Массив A proverka=1 Цикл для i:=1 до 10 делать: Ввод A Конец цикл ...

Рекурсивный алгоритм - C++
Доброго времени суток #include <iostream> #include <cmath> using namespace std; float rec(int x,int n) { if (n != 0) { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
31.08.2010, 04:27 #16
Mila_mali,
Начнём с того, что возможных ходов может быть и больше двух.
А вообще вызывается со всеми возможными позициями.
0
Mila_mali
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 14
31.08.2010, 04:31  [ТС] #17
Я к примеру сказала про две позиции
Я уже изучила сколько ходов можно сделать из каждой клетки доски, пока пыталась решить эту задачу
У меня проблема в другом. Как бы я ни пыталась, я не могу понять принцип рекурсивных алгоритмов
0
easybudda
Модератор
Эксперт CЭксперт С++
9627 / 5575 / 947
Регистрация: 25.07.2009
Сообщений: 10,710
31.08.2010, 04:34 #18
Цитата Сообщение от Mila_mali Посмотреть сообщение
Мне как раз не понятно с тем, как программа будет запоминать все возможные пути
я думаю, как-то так:
C++
1
std::vector<std::pair<int, int> > way;
Первый полученный путь сохранить, как самый длинный. А дальше сравнивать размер свежеполученного массива с самым длинным. Если новый длиннее - сохранять его, как самый длинный...
C++
1
2
if ( way.size() > max_way.size() )
  max_way = way;
1
Mila_mali
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 14
31.08.2010, 04:39  [ТС] #19
Спасибо! Это стало ясно.
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
31.08.2010, 04:40 #20
Mila_mali,
Принцип приблизительно такой
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
func(pos)
{
    вычислить newpos1
    if (из pos в newpos1 нет самопересечений)
    {
        сохранить newpos1
        func(newpos1)
    }
    
    вычислить newpos2
    if (из pos в newpos2 нет самопересечений)
    {
        сохранить newpos2
        func(newpos2)
    }
    ...
    вычислить newposn
    if (из pos в newposn нет самопересечений)
    {
        сохранить newposn
        func(newposn)
    }
0
Mila_mali
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 14
31.08.2010, 04:45  [ТС] #21
Получается, что функция func() рассматривает все возможные несамопересекающиеся пути? или нет?
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
31.08.2010, 04:49 #22
Разумеется! Иначе какой от неё тол, если она будет случайно выбирать один из вариантов и рассматривать только его.
0
Mila_mali
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 14
31.08.2010, 04:54  [ТС] #23
Теперь мне рекурсия стала понятней и у меня появились идеи решения задачи. Спасибо огромное! Без вашей помощи я бы не разобралась!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2010, 04:54
Привет! Вот еще темы с ответами:

Рекурсивный алгоритм - C++
помогите пожалуйста Представить в рекурсивный алгоритм Цикл пока ((proverka=1) и (k&gt;1) ) Если A &gt; A То Начало ...

Рекурсивный алгоритм Дейкстры - C++
Добрый день, необходима помощь в алгоритме trains - матрица, сохраняющая длины ребер stations - количество графов start - граф, с...

Рекурсивный алгоритм перестановок - C++
Подскажите, почему не происходит замусоривания массива used, в котором хранятся данные об использованных элементах начальной строки, и...

нужно построить рекурсивный алгоритм - C++
в общем нужен алгоритм вычисления значение функции exp(x) действительного аргумента x с точностью ε с использованием рекурсии. Нужен как...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.08.2010, 04:54
Ответ Создать тему
Опции темы

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