никак не могу решить задачу. Есть целое число, которое нужно равномерно распределить по весу. Но с округлением это не работает, т.к. распределить нужно так же целыми числами.
Пример прилагаю, буду очень благодарен за помощь. В примере видна проблема. см. Столбец Разница.
vikttur, если разница положительная, то добавлять к первому минимальному перемещению. еслм разница отрицательная, от отнимать у первого максимального к перемещения.
во-первых формула не моя во вторых моя формула неправильно распределяет только для второго товара((( предлагается из 2 имеющихся в первый магазин отправить -1, а в остальные 3 по 1 в итоге 2шт.. распределились по 4 магазинам)) если не идти на поводу у первого возникшего решения, а немного подумать, то можно написать универсальную формулу (еще и короче намного и без массива)
Vas-1998, спасибо, решение схоже, с предложением от Ігор Гончаренко, но его масштабируемое. В любом случае пока не понимаю как решить проблему, когда у какого-то магазина большой существенно большее требование чем у других. Например такое.
Остаток товара на складе
Требуется товара в магазин 1
Требуется товара в магазин2
Требуется товара в магазин 3
20
5
400
1
В этом случае он отдает весь остаток на складе ему, а требуется чтобы хотя бы по 1шт отдал и другим.
Это пласт товаров в 5-6 тысяч. Каждый товар может в один магазин требоваться мало, а в другой много. При этом другой товар может наооборот требовать много в один магазин и мало в другой.
Таки решил задачу самостоятельно, не уверен, что кому-то понадобится, т.к. решение узкопрофилированное, но все же оставлю файл тут. Всем спасибо за помощь.