Давайте предположим, что у меня есть 3 разных корзины с фиксированной емкостью
И n-продуктов, которые имеют различную ценность для каждой корзины - вы можете выбрать только целые продукты
Каждый продукт должен быть ограниченна максимальную сумму (т. е. вы можете максимально выбрать продукт 5 раз)
Каждый продукт добавляет по меньшей мере 0 или более значений ко всем корзинам и входит во все виды вариаций
Теперь я хочусписок со всеми возможными комбинациями товаров, размещаемых в корзинах, упорядоченных по точности (например, корзина 1 на 5% полнее будет на 5% менее точной)
Редактировать: Пример
Корзина Емкость 100
КорзинаB емкость 80
Корзина C емкость 30
поддельные продукты
Продукт 1 (A: 5, B: 10, C: 1)
Продукт 2 (A: 20 B:0, C: 0)
Там может быть сотни других продуктов
Лучше всего подходит с максимум 5 каждый будет
5 раз Продукт 1
4 раза Продукт 2
Результат
A: 105
B: 50
C: 5
Точность: (qty_used / max_qty) * 100
= (160/210) * 100 = 76,190%
Следующей будет другая комбинация с меньшей точностью
Любое указание в правильном направлении высоко ценится Спасибо
Редактировать:
вместо вышеуказанного метода, точность должна быть как ошибка, а список должен быть в порядке возрастания ошибки.
Ошибка (Корзина x) = (|max_qty(x) - qty_used(x)| / max_qty(x)) * 100
и общая ошибкадолжно быть средневзвешенным значением ошибок всех корзин.
Общая ошибка = [Σ (Error(x) * max_qty(x))] / [Σ (max_qty(x))]