Я хочу реализовать следующую математическую формулу в Python:
оптимальный [i] [s] = max {оптимальный [i + 1] [s], оптимальный [i + 1] [sJ [i]] + V [i-1] (s> J [i])}
Я попробовал следующее:
W={1:3,2:2,3:1,4:4,5:5,6:9,7:6,8:7}
V=[25,20,15,40,50,55,45,58]
optimal=[[]]
J=list(W.values())
s=12
for i in range(1,len(W)):
while J[i]<s:
optimal[i][s]=max(optimal[i+1][s],optimal[i+1][s-J[i]]+V[i-1])
print(optimal)
Но я получаю сообщение об ошибке:
Индекс списка вне диапазона.