|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.02.2010, 16:44 | #1 |
Пользователь
Регистрация: 24.11.2009
Сообщений: 30
|
рекурсивный алгоритм.
Помогите с заданием...
Задание 1)На языке программирования Pascal реализовать рекурсивный алгорим решения задачи о ханойских башнях. Для представления ханойской башни необходимо использовать стек и его программную реализацию. Программная реализация алгоритма решения задачи о ханойских башнях должна на каждой итерации выводить протокол работы, представляющий собой содержимое каждого из стеков (башен) после завершения очередной итерации. 2)Провести вычислительный эксперимент с реализованным алгоритмом путем изменения числа колец. При этом максимальное число колец не должно быть большим N=10. Для каждого N измерить время выполнения программы с точностью до милисекунд. Результаты эксперимента выдать из программы в виде таблицы: Кол-во колец Время до наступления конца света .... ...... .... ...... 3)При N=64 потребуется огромное количество лет для выполнения данного алгоритма при помощи буддийских монахов. Интересно, сколько пртребуется времени для решения задачи на современной ЭВМ? (заметим мы, возвращаясь к вопросу о конце света). Вычислите это время аналитически. Для этого вычислите колическтво операций, необходимых для решения задачи о Ханойских башнях при m=N (метод математической индукции), и воспользуйтесь результатами задания 2 для составления простой пропорции. |
22.02.2010, 23:34 | #2 |
Пользователь
Регистрация: 24.11.2009
Сообщений: 30
|
помогите доделать задачу...вот код:
Код:
|
23.02.2010, 07:40 | #3 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 216
|
На современных компьютерах вычисление итераций происходит настолько быстро, что и при 10 кольцах время на все перекладывания меньше чем может показать Windows.
Если при вычислениях задействовать вывод на экран "протокола работы", то можно увидеть и затраченное время. Но 99% этого времени уходит на вывод, а не на вычисления. При 20-ти кольцах, без вывода на экран, на 1048575 итераций (2^20-1) тратится примерно 2000-2500 мск (Turbo Pascal; Delphi, при прочих равных условиях, делает это в 500-600 раз быстрее). Примем для упрощения 2 сек. Тогда можно рассчитать для 64 колец. 2^64-1 = 18 446 744 073 709 551 615 / 1 048 575 = 17 592 202 821 648 * 2 = 35 184 405 643 296 сек / 86400 = 407 226 917 суток |
23.02.2010, 09:33 | #4 |
Пользователь
Регистрация: 24.11.2009
Сообщений: 30
|
Спасибо...а этот код только к 3 заданию,или ко всему???
И если можно...добавьте пожалуйста комментарии к некоторым строкам в тексте программы... |
23.02.2010, 10:29 | #5 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 216
|
Первое задание - уже было сделано в виде представленного вами текста.
Второе задание добавлено в этот текст. Все вместе в исходнике han.txt. Третье задание не решается на Turbo Pascal - в нем нет "длинной арифметики". К тому же в 3-м задании ни гу-гу про TP или какую-либо среду разработки. Поэтому 3-е задание сделано в тексте сообщения в виде простого расчета. К каким некоторым строчкам нужен комментарий? Последний раз редактировалось Karabash; 23.02.2010 в 10:45. |
23.02.2010, 11:28 | #6 |
Пользователь
Регистрация: 24.11.2009
Сообщений: 30
|
Большое спасибо)))
|
04.03.2010, 19:32 | #7 |
Пользователь
Регистрация: 24.11.2009
Сообщений: 30
|
Можете написать комментарии к этой программе...а,то я не могу разобраться в ней...пожалуйста...
Код:
|
17.03.2010, 17:32 | #8 |
Пользователь
Регистрация: 24.11.2009
Сообщений: 30
|
|
17.03.2010, 17:33 | #9 |
Пользователь
Регистрация: 24.11.2009
Сообщений: 30
|
|
21.03.2010, 12:09 | #10 |
Пользователь
Регистрация: 24.11.2009
Сообщений: 30
|
Вот вторая задача...похожая на первую...
Разработать нерекурсивный алгоритм решения задачи о ханойских башнях. На языке программирования Pascal реализовать нерекурсивный алгорим решения задачи о ханойских башнях. Для представления ханойской башни необходимо использовать стек и его программную реализацию, выполненную в задаче: Код:
Провести сравнительный вычислительный эксперимент с рекурсивным (лабораторная работа №3) и реализованным алгоритмами путем изменения числа колец. При этом максимальное число колец не должно быть большим N=10. Для каждого N измерить время выполнения программы с точностью до милисекунд. Результаты эксперимента выдать из программы в виде таблицы: Кол-во колец Время до наступления конца света рекурсивно нерекурсивно ----- --- --- ----- --- --- |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Си, рекурсивный разворот списка | 30MBU | Помощь студентам | 3 | 01.12.2009 17:20 |
Рекурсивный алгоритм | SVM | Общие вопросы C/C++ | 7 | 13.11.2009 09:24 |
Сортировка, поиск, рекурсивный алгоритм Delphi | Stases | Помощь студентам | 4 | 29.05.2009 01:15 |
Разработать рекурсивный алгоритм | lucky | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 08.05.2009 15:04 |
Рекурсивный SQL запрос | ADSoft | SQL, базы данных | 5 | 02.06.2008 16:55 |