| DarkWishmaster |
28.05.2011 14:48
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: 3 |
Здравствуйте, тут попалась задача "Ханойские Башни" вроде бы классика, легко реализуемая рекурсией, но в задачи указано что для 1<=N<=20 время выполнения не должно превышать 1 сек. Существуют вообще такой алгоритм? С рекурсией больше 10 сек выдает, пробовал нерекурсивный ( с форума) тот тоже очень медленный. В гугле ничего не нашел.
Сообщение отредактировано: DarkWishmaster - 28.05.2011 14:49 |
![]() ![]() |
| Гость |
15.06.2011 22:09
Сообщение
#2
|
|
Гость |
для Н=1 ответ 1 иначе...
s=2; for i:=1 to n-1 do s:=s*2+1; write(s); for(int i=0;i<n-1;i++) s=s*2+1; cout<<s; вроде как то так.. должно быстро работать... |
| Гость |
15.06.2011 23:08
Сообщение
#3
|
|
Гость |
|
| Lapp |
15.06.2011 23:14
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
и все сойдется Гость, извини, ты прочел вопрос в теме? Он был не про общее решение, а про скорость. Напиши прогу, замерь время выполнения (или оцени его другим способом) - и тогда отвечай. Хорошо? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
DarkWishmaster "Ханойские Башни" и скорость выполнения. 28.05.2011 14:48
IUnknown Что именно должно быть сделано за эту секунду? На... 28.05.2011 22:58
DarkWishmaster
Что именно должно быть сделано за эту секунду? Н... 29.05.2011 9:33
IUnknown 20 дисков - это 1048575 перемещений. Вывести на эк... 29.05.2011 10:07
DarkWishmaster
20 дисков - это 1048575 перемещений. Вывести на э... 29.05.2011 10:18![]() ![]() |
|
Текстовая версия | 2.11.2025 14:12 |