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

Ханойская башня - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
lolers
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 14
02.07.2012, 23:14     Ханойская башня #1
Здравтвуйте! Нужно решить задачу где на вход дано Н стержней и К дисков и еще известны начальная и конечная конфигурации(где какие диски лежат). У кого-нибудь есть идеи насчет алгоритма? Для 3-4 стержней я знаю как делать а вот для Н.
http://tristan-interview.blogspot.co...roblem-of.html (нашел что-то об этом, но мне не совсем понятно что тут написано)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2012, 23:14     Ханойская башня
Посмотрите здесь:

C++ Ханойская башня
Ханойская башня C++
C++ Ханойская башня
Ханойская башня еще раз C++
Ханойская башня- тесты C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
g-h
67 / 67 / 1
Регистрация: 03.06.2012
Сообщений: 176
02.07.2012, 23:22     Ханойская башня #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void t(int r, int b, int e) // количество дисков, начальный диск, конечный диск
{
    int c;      // среднее кольцо
 
    if ( ((b==1) && (e==2)) || ((b==2) && (e==1)) )
        c = 3;
    else
        if ( ((b==1) && (e==3)) || ((b==3) && (e==1)) )
            c = 2;
        else
            if ( ((b==2) && (e==3)) || ((b==3) && (e==2)) )
                c = 1;
 
    if (r>1)
    {
        t(r-1, b, c);
        cout << b << " -> " << e << endl;
        t(r-1, c, e);
    }
    else
        cout << b << " -> " << e << endl;
}
lolers
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 14
02.07.2012, 23:27  [ТС]     Ханойская башня #3
вы прочитали мое сообщение? или просто по заголовку закопипастили код?)
g-h
67 / 67 / 1
Регистрация: 03.06.2012
Сообщений: 176
02.07.2012, 23:32     Ханойская башня #4
Извиняюсь, немного напутал
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
02.07.2012, 23:38     Ханойская башня #5
а в гугле искать не пробовали? что-то выдает, например это
http://alglib.sources.ru/articles/hanoy.php
http://algolist.manual.ru/maths/combinat/hanoi.php
в деталях не разбирался.
lolers
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 14
02.07.2012, 23:41  [ТС]     Ханойская башня #6
Можно, пожалуйста, без тупых подколок по поводу "гугл знает", "ищи в гугле". Искал я часа 3 уже)
ЧИТАЙТЕ ПЛЗ ПЕРВОЕ СООБЩЕНИЕ. Н стержней! К дисков! не 3!!!!
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
03.07.2012, 05:33     Ханойская башня #7
lolers, на той странице что вы дали предлагают использовать поиск в глубину. Однако при больших числах это не прокатит. У вас есть ограничение по времени, а также на K и H?
lolers
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 14
03.07.2012, 13:51  [ТС]     Ханойская башня #8
По времени ограничегий нет. Есть ограничение по н и к. К от 3 до 5 включительно. Н от 1 до восьми включительно
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
03.07.2012, 13:53     Ханойская башня #9
lolers, тогда делайте поиск в глубину и даже не парьтесь.
lolers
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 14
03.07.2012, 14:19  [ТС]     Ханойская башня #10
Вы могли бы написать алгоритм, а то мне несовсем понятно то, что написано на том сайте.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
03.07.2012, 17:27     Ханойская башня #11
Цитата Сообщение от lolers Посмотреть сообщение
Вы могли бы написать алгоритм
Мог бы.
Цитата Сообщение от lolers Посмотреть сообщение
а то мне несовсем понятно то, что написано на том сайте.
http://translate.google.com
g-h
67 / 67 / 1
Регистрация: 03.06.2012
Сообщений: 176
03.07.2012, 18:13     Ханойская башня #12
Допустим у нас 10 стержней. В начале все диски находятся на первом стержне и нужно перенести на 10. Бери любое число от 2 до 9 для временного хранения дисков. И все
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2012, 18:47     Ханойская башня
Еще ссылки по теме:

C++ Ханойская башня
Задача Ханойская башня. Написать порядок действий в графической интерпритации C++
Нужна рабочая программа "Ханойская башня" в консоли C++

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

Или воспользуйтесь поиском по форуму:
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
03.07.2012, 18:47     Ханойская башня #13
g-h, там любое расположение дисков. Это значит, что они могут быть не на одном стержне.
Yandex
Объявления
03.07.2012, 18:47     Ханойская башня
Ответ Создать тему
Опции темы

Текущее время: 13:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru