Привет, ребята. Я пытаюсь написать код для задачи оптимизации в python, проблема в том, что мне нужно вылечить человека с помощью медицины, лекарство 1 лечит 25 единиц, требуется 3 травы А и 2 травы Б, а лекарство 2 лечит 20 единиц, требуется 4 трава A и 1 трава BI имеют 25 единиц травы A и 10 единиц травы B. В конце я хочу напечатать максимальное количество здоровья, которое я могу излечить, и сколько из каждого лекарства 1 и 2, которое я использовал (ясно, что понятия не имел, как поставить)
Я пытался написать проблему с рюкзаком, но получаю сообщение об ошибке
TypeError: неподдерживаемые типы операндов для +: 'int' и 'function'
med1= 25
med2= 20
x=25
y=10
health=0
def knapsack(health,med1,med2,x,y):
if x==0 or y==0:
return knapsack
if(med1+knapsack(health+med1,med1,med2,x-3,y-
2)>med2+knapsack(health+med2,med1,med2,x-4,y-1)):
return (med1+knapsack(health+med1,med1,med2,x-3,y-2))
else:
return (med2+knapsack(health+med2,med1,med2,x-4,y-1))
print(knapsack(health,med1,med2,x,y))
Может кто-нибудь мне помочь.
Спасибо