Условие "выполнить заказ за наименьшее время" равносильно условию работы обеих бригад без простоя и по возможности одновременного окончания работы обеих бригад))) т.е. цель --- уравнять время работы обеих бригад х --- число рабочих в первой бригаде на изготовление деталей типа P (214-x) --- число рабочих во второй бригаде на изготовление деталей типа Q комплектов по 5 деталей типа P получится 6000/5 = 1200 комплектов по 3 детали типа Q получится 2000/3 время на изготовление каждого такого комплекта одинаково комплектов типа Q меньше в 1200*3 / 2000 = 1.8 раз времени для изготовления деталей типа Q потребуется в 1.8 раз меньше 1.8(214-х) = х 1.8*214 = 2.8х х = 18*214 / 28 = 9*107 / 7 = 137_4/7 х ---натуральное число))) х = 137 или х = 138 ---первая бригада))) 77 или 76 ---вторая бригада)))
Как я понимаю, на листочке эту задачу не решить. По крайней мере, это будет мучительно долго. А на компьютере - запросто.
Итак, решение. Т.к. наибольшее слагаемое равно 12, то нам надо посчитать количество разбиений числа 64-12=52 на 9 натуральных слагаемых. Т.е., если обозначим через p(N,M,n) количество разбиений числа n на НЕ БОЛЕЕ, чем M слагаемых, каждое из которых не превосходит N, то нам надо найти p(12,9,52)-p(12,8,52). Если у нас есть произвольное разбиение числа n на РОВНО M слагаемых, где каждое не больше N, то вычитая из каждого такого слагаемого 1, мы получим разбиение числа n-M на НЕ БОЛЕЕ, чем M слагаемых, где каждое слагаемое уже не больше N-1. И в обратную сторону тоже верно. Т.е. имеет место рекуррентное соотношение p(N,M.n)-p(N,M-1,n)=p(N-1,M,n-M). Его уже достаточно для вычисления p(N,M.n) для произвольных N,M,n. Остается только заметить, что если NM<n или n<0, то p(N,M,n)=0, и если n=0 или NM=n, то p(N,M,n)=1. В ручную применять это рекуррентное соотношение для наших чисел очень долго, но на компьютере, например в программе MAPLE следующий рекурсивный алгоритм мгновенно находит ответ:
p:=proc(N,M,n) if (n<0) or (N*M<n) then return 0; fi; if (n=0) or (N*M=n) then return 1; fi; return p(N,M-1,n)+p(N-1,M,n-M); end proc:
Получаем p(12,9,52)-p(12,8,52)=p(11,9,43)=4447. Так что ответ здесь будет 4447.
работы обеих бригад без простоя и по возможности одновременного окончания работы обеих бригад)))
т.е. цель --- уравнять время работы обеих бригад
х --- число рабочих в первой бригаде на изготовление деталей типа P
(214-x) --- число рабочих во второй бригаде на изготовление деталей типа Q
комплектов по 5 деталей типа P получится 6000/5 = 1200
комплектов по 3 детали типа Q получится 2000/3
время на изготовление каждого такого комплекта одинаково
комплектов типа Q меньше в 1200*3 / 2000 = 1.8 раз
времени для изготовления деталей типа Q потребуется в 1.8 раз меньше
1.8(214-х) = х
1.8*214 = 2.8х
х = 18*214 / 28 = 9*107 / 7 = 137_4/7
х ---натуральное число)))
х = 137 или х = 138 ---первая бригада)))
77 или 76 ---вторая бригада)))
Итак, решение. Т.к. наибольшее слагаемое равно 12, то нам надо посчитать количество разбиений числа 64-12=52 на 9 натуральных слагаемых. Т.е., если обозначим через p(N,M,n) количество разбиений числа n на НЕ БОЛЕЕ, чем M слагаемых, каждое из которых не превосходит N, то нам надо найти p(12,9,52)-p(12,8,52). Если у нас есть произвольное разбиение числа n на РОВНО M слагаемых, где каждое не больше N, то вычитая из каждого такого слагаемого 1, мы получим разбиение числа n-M на НЕ БОЛЕЕ, чем M слагаемых, где каждое слагаемое уже не больше N-1. И в обратную сторону тоже верно. Т.е. имеет место рекуррентное соотношение p(N,M.n)-p(N,M-1,n)=p(N-1,M,n-M). Его уже достаточно для вычисления p(N,M.n) для произвольных N,M,n. Остается только заметить, что если NM<n или n<0, то p(N,M,n)=0, и если n=0 или NM=n, то p(N,M,n)=1. В ручную применять это рекуррентное соотношение для наших чисел очень долго, но на компьютере, например в программе MAPLE следующий рекурсивный алгоритм мгновенно находит ответ:
p:=proc(N,M,n)
if (n<0) or (N*M<n) then return 0; fi;
if (n=0) or (N*M=n) then return 1; fi;
return p(N,M-1,n)+p(N-1,M,n-M);
end proc:
Получаем p(12,9,52)-p(12,8,52)=p(11,9,43)=4447. Так что ответ здесь будет 4447.