Михаил, что быстрее стек или предыдущее изменения? У меня стек дольше выполняется (на тестовом примере). Внес предыдущее в С++, меняем на стек? И еще важно, можно ли параллелить алгоритм. Я так понимаю со стеком - это под вопросом (важна очередность)? На freebasic не получилось с потоками сделать? у меня здесь вопросы есть.
upd: По алгоритм, через sMaxArr Поиск 2 тыс. слагаемых на 3 млн. рублей. VBA - 137 сек.85 сек. XLL - 4 сек.2 сек.
bedvit написал: Михаил, что быстрее стек или предыдущее изменения?
У меня получается стек немного быстрее и он не требует сокращения на НОД, но нужно выделять больше памяти
Цитата
bedvit написал: Я так понимаю со стеком - это под вопросом (важна очередность)?
Стек разделять на потоки наверное сложнее, т.к. потоки должны работать с одним и тем же стеком, будут конфликты между потоками
Цитата
bedvit написал: На freebasic не получилось с потоками сделать? у меня здесь вопросы есть.
Пока нет времени, может вечером получится набросать
Хочу немного изменить ввод и вывод данных на входе размер слагаемого и кол-во (по умолчанию кол-во = 1) на выходе порядковый номер слагаемого и их кол-во, можно выводит как в сжатом виде так и полный перечень всех слагаемых с нулевым количеством (если слагаемое не используется) Это пригодится например в задаче раскроя
Пока сделал самый быстрый вариант на С++. На тестовом стенде (ранее выложенный файл) - 2 сек. Добавил обработку ошибок, диалог о первоначальном расположении данных.
Вариант на FreeBasic Все данные находятся в txt файле, после решения результат сохраняется также в txt У меня версия 64бит считает 5 секунд 3-4 сек XLL не тестировал, не разобрался еще как это сделать
Просто скачать xll, открыть, открыть нужный файл, нажать кнопку "XLL Find Summands ". Здесь еще скрин и ссылка. Возможно комп слабый и xll тоже будет отрабатывать 5 сек. Интересен результат.
я, конечно, не особо разбираюсь в нюансах, но по-моему, C++ — это болид формулы 1, а FreeBasic больше похож на Kia Rio. То есть уже не старенький работяга Ford Focus, как VBA, но и к мирообразующим языкам не относится, чтобы сравнивать
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Сильно не разбирался, но думаю не только компилятор. Как устроен контейнер (массив) тоже имеет значение (скорость чтения/записи, проверка на выход за границы и т.д.). Разрыв незначительный, по сравнению с VBA. Можно подумать над вариантом параллельного алгоритма. Или решить ещё одну задачу. Или внедрить сторонние, хорошо зарекомендовавшие себя библиотеки.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
так проблема-то не в подборе (он тестовый), а в надстройке — а её Михаил вряд ли поправит
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
закрыл Excel, заменил в AddIns надстройку, открыл пустую книгу - вылетает При повторном запуске, она отключена, включаю из Excel - вылетает Установщик просит включить её, а я не могу
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
bedvit: Я залил недавно, качни сейчас, возможно ты еще старую версию закачал
вряд ли ты залил ПОСЛЕ того, как написал в 11:47 Я скачал в 14 где-то, версию мне где посмотреть? Если ты помнишь, мне не так-то просто качать))) да и работы полно
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
bedvit, полёт нормальный - подбор оттестировал на том же примере Не хочешь добавить возможность вывода нескольких вариантов, как тут?
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Jack Famous, можно все что угодно. Главное, что бы было нужно сие. Техника сложная, нужно не забивать ей гвозди, а напилить, то что нельзя или долго считается на VBA.
Сделал немного другую реализацию на VBA поиска слагаемых, когда есть суммы и кол-ва может кому нибудь пригодится Считает на VBA по сравнению с C++ значительно медленнее
bedvit, согласен - тем более у тебя отображается, что было взято (только заметил) UPD:периодически вылетает при открытии книги UPD2: не периодически - теперь надстройку не подключить опять (просто закрыл книгу и открыл заново - и всё началось) Удалить и подключить заново не удалось - что-то с регистрацией, наверное
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
MCH, спасибо, глянем! Jack Famous, прямо наваждение какое-то. Что пишет? Сможешь посмотреть лог через справку (в надстройке) или через функцию (не документируемую ) в категории XLL "ColorRGB()" Напиши мне в вотсапе, что делаешь, нужно понять проблему. У меня на 2х ПК днями работает, полет нормальный (может винда разная и т.д.)
MCH, Михаил, Коллеги, сможете скачать/установить и протестировать работу надстройки? (есть установщик, или самому установить для нужной разрядности EXCEL) Нажать кнопку "XLL Справка", приложить скриншот, указать версию Windows.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
bedvit, ссылку на библу подключал вручную, как и надстройку - да)) Пока особо не тестил, но то, что успел - да. Спасибо!
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄