Сумма автоматическим подбором цифр

Автор RuMekh, 24 июня 2021, 20:46

0 Пользователи и 1 гость просматривают эту тему.

RuMekh

Доброго времени суток. Есть значения в колонках A и G, нужно формулой (макросом) подобрать цифры из колонки М, чтобы их сумма соответствовала значениям в колонках A и G.

sokol92

На этот счет есть целая теория, начните отсюда. Михаил (МСН) - крупный специалист по решению комбинаторных задач в Excel.
Владимир.

kompilainenn

Боюсь, что человеку нужно готовое решение прям здесь и сейчас =)
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

sokol92

 Я готов перенести решение из VBA в LO Basic немедленно.  :)
Но его (решение) сначала нужно выбрать. Задача о рюкзаке  - не простая.
Владимир.

bigor

В примере еще и с исходными данными нужно поработать, в нем есть ячейки с 4 знаками после запятой
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

RuMekh

Добрый вечер, спасибо что откликнулись на просьбу помощь. С LO 7.1 первую неделю, пытаюсь решить задачу по оптимизации работы инженера-метролога. При калибровке калибров-скоб применяют плоскопараллельные концевые меры длины (ПКМД), из которых собирают блоки (3-5 ПКМД на размер скобы). Четырёхзначные цифры нужно сократить до трёхзначных (нет концевых мер десятитысячных).

RuMekh

Жёлтым цветом выделены ПКМД и они максимум с тремя знаками после запятой, соответственно и поле допуска номинального размера (выделено зелёным) тоже должно быть с тремя знаками после запятой. 4 знака после запятой это из ГОСТовской таблицы скопировано.

RuMekh

ЦитироватьЯ готов перенести решение из VBA в LO Basic немедленно.  Улыбка
Но его (решение) сначала нужно выбрать. Задача о рюкзаке  - не простая.
Добрый день. У меня в примере есть решение (напротив суммы в четырёх ячейках числа слагаемых), выбранных из предлагаемого списка в столбце М.

sokol92

Цитата: RuMekh от 27 июня 2021, 13:03У меня в примере есть решение

Да, но это решение не формализовано на языке VBA (и ни на каком другом). :)

Я пробовал в Excel решить Вашу задачу известными (стандартными) методами, но получалось долго - до нескольких десятков секунд на один подбор. В LO интерпретатор Basic в разы медленнее, чем интерпретатор VBA в Excel, так что алгоритм, увы, пришлось писать самому.

В прилагаемом файле подобранные значения даны через знак ";" (чтобы еще не усложнять формулами массива). ПКМД должны обязательно следовать по возрастанию.
Суммарно расчет должен занимать не более минуты (на 272 примера).

Проверяйте!
Владимир.

RuMekh

Доброго времени суток. Такой вариант очень даже подойдёт ( Задача о рюкзаке  - не простая). Спасибо sokol92 за помощь. Тема закрыта.