Я работаю над проектом, в котором мне нужно создать данные в таком оптимизированном формате, чтобы он не слишком сильно замедлялся.
Проблема:
Предположим, вы заказали 12 единиц в моем интернет-магазине продукта. И для этого продукта у меня есть 5 различных комплектов , чтобы предложить такое большое количество от.
Предположим, что массив пакетов с серийным номером в качестве ключа и единиц, доступных в этом пакете в качестве значения , имеет вид:
$arr = array(
array('sr_no1'=>5),
array('sr_no2'=>7),
array('sr_no3'=>2),
array('sr_no4'=>9),
array('sr_no5'=>12)
);
Теперь у моего жадного подхода есть два основных условия, чтобы отдать количество, запрошенное клиентом.
- должно быть минимальное количество потерь, например, если вы заказываете 11 единиц, вы бы дали 9 + 2-11 = 0 потерь вместо 12-11 = 1 потери
- значение должно быть выбрано из минимального количества лотов / пакетов, например, если вы заказываете 12 единиц, тогда 5 + 7-12 = 0 потерь и 12-12 = 0 потерь, поэтому мы выберем массив ('sr_no5' => 12) за выдачу запрошенного количества.
Я пытался найти решение за последние 3 дня.
Рассмотрим контрольные примеры для заказанного количества, равного 12, 11 или 6.
или 35 или 30 и т. д.
В результате мне нужны массивы, которые мы выберем для распределения величин, таких как массив ('sr_no5' => 12) для выдачи 12 единиц упорядоченного количества и массива массивов ('sr_no3' => 2) , массив ('sr_no4' => 9) для выдачи 11 единиц количества.
Я пробовал рюкзак, жадное и минимальное связующее дерево, пытаясь найти решение.
Пожалуйста, найдите наиболее оптимизированное решение, так как мы не хотим достигать тайм-аута сервера.