Разбивка целого на части

Хочу написать программу для расчета нарезки материала. Например, доски обычно длиной 6 метров. Мне нужно 8 отрезков по 1,3 метра, 8 отрезков по 0,8 метра и 14 отрезков по 0,6 метра. Хотелось бы внести длину исходного материала, количество и длину отрезков и чтобы программа сама рассчитала раскладку с минимальным количеством отходов. Я на бумаге могу посчитать, а вот алгоритм этих расчетов не могу написать. Что почитать?


Ситуация: материал - доски длина 6 метров.Нужны отрезки 6 по 1,5 метра, 6 по 2 метра, 10 по 0,75 метра. Значит 6 по 2 метра - это две доски и ноль остатков. 4 по полтора - это ещё одна доска и ноль остатков. Остаётся два по полтора, это три метра, остаток доски режем по 0,75, 4 отрезка по 0,75. И оставшиеся 6 по 0,75 режем из последней доски, остаётся кусок 1,5 метра. Это оптимальный раскрой. А ведь можно из доски нарезать 2*2, потом добавить 1,5 и останется 0,5 метра. В общем задача, чтобы прога минимизировала затраты материала.


Ответы (0 шт):