C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Типа бэнчмарк
exp
Отправлено: 24.06.2006, 16:30


Мастер участка

Группа: Участник
Сообщений: 304



Привет всем. Вот.. недавно решал такую задачу для одной девки:
"перечислить все варианты расстановки скобок между N сомножителями. Один множитель не может быть заключён в скобки."
Вот примеры расстановки для трёх множителей:
(abc)
((ab)c)
(a(bc))
Итак. написал это, а потом ввёл 15 множителей. В результате прога работала 28 минут 45 секунд и подобрала 1594323 вариантов расстановки скобок. Если все эти вариенты скопировать в Notepad и сохранить, то этот текстовик будет весить 55 мегабайт.
Вот и решил я этот "бэнчмарк" выложить. Кому не жалко пол часа?
Заодно посмотрим, кто на форуме самый быстрый. smile.gif

Итак моя система:
Мать ASUS P4C800
CPU P4 2.6 (800)
Mem DDR 3200 512 Hunix
Думаю хватит о себе smile.gif. Не фонтан система, конечно.

Вход: 15 множителей.
Моё время: 28 минут 45 сек 65 милисекунд
Побеждайте меня smile.gif

User Attached Image Скачать файл
Project1.zip


Doga
Отправлено: 24.06.2006, 19:53


Мастер участка

Группа: Участник
Сообщений: 575



user posted image

Msi K8N Neo4
AMD Athlon 64 3GH
1GB mem PC3200


smile.gif

Отредактировано Doga — 25/06/2006, 10:09
exp
Отправлено: 24.06.2006, 21:31


Мастер участка

Группа: Участник
Сообщений: 304



ОООООО! Большооооой респект. Погодь, вот сделаю её многонитиевой.... smile.gif)
Кстати, неплохая мысль cool.gif

ЗЫ: Кстати, надыбал у себя ошибку, которая не учитывает половину вариантов sad.gif. Надо будет исправить

Отредактировано exp — 24/06/2006, 21:33
Doga
Отправлено: 25.06.2006, 10:08


Мастер участка

Группа: Участник
Сообщений: 575



Кстати, можно отключить вывод на экран. Глазами всё равно не уследишь (я уж не говорю про "записать на листочке" smile.gif ), а работать будет быстрее.
** exp
Отправлено: 25.06.2006, 21:30


Не зарегистрирован







Полностью согласен, но переделывать, честное слово, лень smile.gif Зачем? Ведь в качестве лабораторной уже покатило, а для бэнчмарка лишняя нагрузка не помешает.
Хотя можно сделать опцию "Поставить свойство Visible компонента Memo1 равным true" (типа для крутых тачек). И на клик чекбокса повесить Memo1->Visible = CheckBox1->Checked. Но это таааак долго.
А вот в следующей версии...... :-)

Вернуться в Флейм