Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2012, 21:22   #1
luffi
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 14
По умолчанию как сделать что бы работала быстрее

вот у меня есть такая програма-делается простые комбинации(сочетания) без повторений и выводит их. как мне зделать чтобы работало быстрее. просто мне нада комбинацию с 21 до 45 там выходит 3 773 655 750 150. слишком уж долго ждать пока оно его переберёт всё
Вложения
Тип файла: rar dsds.rar (168.4 Кб, 15 просмотров)
luffi вне форума Ответить с цитированием
Старый 10.04.2012, 21:58   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, раз уж Вы говорите про сочетания, правильнее будет сказать "выбрать из 45 по 21".

а во-вторых, Вы, наверное, шутить изволите!
если записывать все полученные сочетания в файл,
то получается:
3773655750150*23 - разделим полученное число на (1024*1024*1024*1024) чтобы получить размер в ТБ.
получаем:
3773655750150*23/(1024*1024*1024*1024) = 78.9 ТерраБайт.

У Вас есть куда записать 78 Террабайтный файл?!

дальше. Ваш алгоритм, если не сохранять результаты (вообще не сохранять).
генерит примерно 1307504 комбинаций за 2.97 секунды (на моём стареньком компьютере, правда).
Ну пусть Вам удасться ускорить процесс на два порядка (т.е. в сто раз), хотя мне и такое ускорение кажется маловероятным, с учётом того, что надо результаты всё таки сохранять.
тогда получаем, что для перебора потребуется примерно 85717 секунд ~~ 23 часа
т.е. генерить будете сутки. Это достаточно быстро?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.04.2012, 23:27   #3
luffi
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 14
По умолчанию

да 78тб я не найду. ну а хоть както прискорть програму можна, ну для меньших собетаний?
luffi вне форума Ответить с цитированием
Старый 10.04.2012, 23:53   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ускорить можно.
выкиньте визуальный TMemo
и используйте вместо него невизуальный TStringList

p.s. при указании размера выборки (первое число) больше 9 строчка вывода у Вас получается ошибочная! Попробуйте, например, 15 из 15
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать, чтобы программа работала сразу через 20 сайтов? tima777 Работа с сетью в Delphi 4 13.08.2011 20:48
как вставить код программы в Delphi что бы она работала? Porter_37 Общие вопросы Delphi 1 26.05.2011 21:20
Как сделать чтоб программа работала в фоновом режиме nik-maximal Общие вопросы Delphi 3 25.05.2011 20:14
Как сделать чтоб при нажатии кнопки форма не работала? quarty Помощь студентам 6 05.11.2010 15:50
как сделать так что при изменении разрешения экрана программа работала... Victor[famas] Общие вопросы Delphi 7 13.02.2008 12:48