Оно и раньше применялось не часто, а в основном в спагеттинах, где от начала до конца блока переменные успевали состариться у умереть... В Битриксе, например.
Сейчас меньше используется именно из-за того, что в Пыхе стал менее популярен говнокод.
Gene Hagmt, чтобы однажды обнаружить, что после очередной правки у вас сессия стартовала до этой настройки? В чем профит от прописывания этого в коде и отслеживания, как бы оно не сломалось, если можно задать один раз в настройках и забыть? Ну, второй раз в тестах - поставить проверку, чтобы не забыть при переносе на другой сервер...
Vitaly, любопытства ради погрепал исходники той программки, в которой копаюсь прямо сейчас. new встречается 43 раза. delete - только 3, и это все создание и удаление библиотечных классов. В 40 случаях это классы GUI, заботу о которых тут же берет на себя родительское окно.
Это к вопросу, нужно ли глубоко лезть в указатели в начале обучения.
Программка, если что, вполне успешно решает NP-задачу, так-то у нее в потрохах довольно много всего... а вот работы с указателями нет. Дорогая это операция - память выделять. Заранее созданный вектор с запасом места - получается и быстрее, и надежнее...
rad_li, вряд ли вам хотелось бы править исходники Thunar - в нем ничего подобного просто не предусмотрено. Да и в других FM, насколько мне известно - тоже.
kolosovas, нет, нужно искать возможность сразу формировать последовательности длины N * 500 000, обсчитывать их по мере формирования, откладывая самую лучшую, а по окончании подбора просто разбить ее на N последовательностей по 500 000.
kolosovas, если вам нужен минимальный повтор между последовательностями, то он в оптимуме нулевой. Стоит рассмотреть алгоритм их формирования и удлинить в N раз, а потом разбить. Тогда ничего хранить и комбинировать не потребуется вообще, вся математика будет решаться с каждой из последовательностей индивидуально.
Сергей Соколов, предлагаю не сбивать ТС с толку разными вопросами, а озадачить одним: описать по-человечески, что он на самом деле считает. А то мы тут ему догадками AI изобретем ;)
Zhainar, мне - нет. ТС - нужно, это само собой. Просто, судя по его описанию, ему приходится пересчитывать не 15 миллионов, а N комбинаций из 15 миллионов. А это немножко более охрененное количество.
kolosovas, главный вопрос, имхо, таков: можете ли вы, проанализировав одну последовательность, что-то сказать о ее перспективности для перебора? Лучше она других, хуже или это выяснится только в комбинации с N - 1 других последовательностей?
Zhainar, очевидно, это не та простая задача, которую вы так решаете. Кстати, учитывая объемы данных, вы решаете ее неверно. Отбирать N оптимальных элементов можно еще в процессе обсчета, не храня все миллионы результатов и ничего не сортируя.
kolosovas, мы-то вообще не понимаем, почему вам нужно сравнивать каждую последовательность с каждой. Вы же не дали никакого описания цели, кроме некоего туманного "охвата поля".
Формирование всех возможных сочетаний - это тот же самый полный перебор, делать его заранее бессмысленно, только огребете еще больше проблем с хранением данных.
Zhainar, откуда вы взяли "последовательных"? В том-то и затык, что нужно найти N элементов из 15 миллионов, которые вместе дадут некий максимальный результат.
Причем, судя по всему, предварительный отбор элемента, который даст лучший результат, чем другие, невозможен.
V Sh., ну да, честный оптимум в общем случае - только полным перебором. Но конкретные случаи могут позволять оптимизации, инварианты и ранние отсечки. С уменьшением времени перебора на порядки. Естественно, по расплывчатому описанию мы тут ничего не насоветуем...
Сейчас меньше используется именно из-за того, что в Пыхе стал менее популярен говнокод.