|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.08.2012, 18:19 | #1 |
Пользователь
Регистрация: 17.08.2012
Сообщений: 23
|
Задача о Ханойских башнях. Рекурсивное решение. Время выполнения алгоритма (Pascal)
В центре мира в вершинах равностороннего треугольника в землю вбиты три алмазных шпиля. На одном из них надето 64 золотых диска убывающих радиусов (самый большой – нижний). Трудолюбивые буддийские монахи день и ночь переносят диски с одного шпиля на другой. При этом, диски следует переносить по одному и нельзя класть больший диск на меньший. Когда все диски перенесут на другой шпиль, наступит конец света (задачу и рассказ придумал математик Эдуар Люка в 1883 г.).
В общем алгоритм уже реализован, в программе Lazarus, на языке Pascal, вот только нужно сделать несколько тестов, точнее измерить время выполнения алгоритма, в зависимости от количества колец. Вопрос такой, с помощью каких функций или процедур можно это сделать, и какие может быть модули надо подключить и как это сделать... |
25.08.2012, 18:32 | #2 |
Пользователь
Регистрация: 17.08.2012
Сообщений: 23
|
Вот пробовал как здесь http://programmersforum.ru/showthread.php?t=34353
Но не могу декларировать такую переменную ticks : LongInt absolute 0:$46c; Выдает ошибку синтаксиса... |
25.08.2012, 18:48 | #3 |
Форумчанин
Регистрация: 08.06.2011
Сообщений: 693
|
Если каждую секунду будет перемещаться одно кольцо, то операция будет выполнена за 18 446 744 073 709 551 616 секунд. (2^64).
|
25.08.2012, 18:49 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
|
25.08.2012, 18:59 | #5 |
Пользователь
Регистрация: 17.08.2012
Сообщений: 23
|
Ну у меня такая задача, тут уж я ничего не могу поделать, нужно точно знать время выполнения программы, то есть если на 10 кольцах, это неощутимо, то на 64 кольцах, я ждал минут 40, потом мне надоело и я выключил. Вот теперь надо опять включить, только на этот раз замерить.
|
25.08.2012, 19:15 | #6 |
Пользователь
Регистрация: 17.08.2012
Сообщений: 23
|
Вот я в принципе понял как можно замерить время с помощью системных тиков, только не знаю как можно получить доступ к этой ячейке $0000:$046c вот както так она выглядит. Или так $0040:$006C, я точно не знаю...
|
25.08.2012, 19:26 | #7 |
Пользователь
Регистрация: 17.08.2012
Сообщений: 23
|
|
25.08.2012, 20:01 | #8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
|
25.08.2012, 20:07 | #9 |
Пользователь
Регистрация: 17.08.2012
Сообщений: 23
|
Ну, я не сильно еще разбираюсь, но скажу так, у меня стоит Windows XP, пишу в программе Lazarus, вот мне надо замерить там пару вариантов и просто потом я в таблице это выведу в отчете. То есть надо чтобы этот exe-шник на XP работал, надеюсь я правильно вас понял.
|
25.08.2012, 20:13 | #10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Pascal задача.нужно решение | Avelhar | Помощь студентам | 7 | 21.05.2012 12:25 |
Время выполнения | n00n | Общие вопросы C/C++ | 7 | 10.06.2010 15:05 |
Время выполнения | Goodwin98 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 16 | 21.06.2009 08:41 |
необходимо засечь время выполнения части алгоритма | Lord Lex | Win Api | 12 | 03.03.2009 21:36 |
Рекурсивное решение задачи о Ханойских Башнях | bullvinkle | Помощь студентам | 2 | 01.04.2008 13:09 |