Решение задачи о ранце методом динамического программирования

Я совершенно новичок в matlab и математике, задали задачку, где требуется определить, какие предметы и в каком количестве нужно загрузить в ранец, чтобы суммарная ценность груза была максимальной.

Реализовал следующую часть кода:

% решение задачи о ранце методом динамического программирования 
disp('введите объём ранца V')
V=input('V=');
disp('введите количество видов предметов n')
n=input('n=');
disp('введите объём (вес) 1ед.предметов каждого вида') 
T1='p(';
for i=1:n
T_i=num2str(i);
str1=strcat('v',T_i,'=');
v(i)=input(str1);
end
disp('введите стоимость 1ед.предметов каждого вида') 
for i=1:n
T_i=num2str(i); 
str1=strcat('c',T_i,'=');
 c(i)=input(str1);end
disp('введите максимальное количество предметов каждого вида') 
for i=1:n 

Далее мне помогал преподаватель, но у меня ничего не сработало, так как полного понимания языка matlab нет, особенно интересует последняя строчка. Обращаюсь к вам, дорогие профессионалы, так как преподавателя не понимаю, буду благодарен за любую помощь, спасибо.

T_i=num2str(i); str1=strcat('d',T_i,'=');
d(i)=input(str1); if d(i)*v(i) > V
d(i)=min(d(i),fix(V/v(i))); str2=num2str(d(i)); 
str3=strcat('Поправка: d',T_i,'=',str2); disp(str3)
end
end
disp('Ввод вх. данных закончен. Нажмите Enter'); pause
[Zmax,X] = sumka(V,n,v,c,d) 

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