实施数学公式
Implementing a mathematical formula
我想在python中实现以下数学公式:
optimal[i][s]=max{ optimal[i+1][s], optimal[i+1][s-J[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)
但我收到一条错误消息:
List index out of range.
您的表述类似于动态规划。如果您使用动态规划和 python 关键字进行搜索,您可以找到很好的示例。特别是 https://www.geeksforgeeks.org/0-1-knapsack-problem-dp-10/
和 https://codereview.stackexchange.com/questions/20569/dynamic-programming-knapsack-solutionhttps://www.geeksforgeeks.org/0-1-knapsack-problem-dp-10/
我想在python中实现以下数学公式:
optimal[i][s]=max{ optimal[i+1][s], optimal[i+1][s-J[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)
但我收到一条错误消息:
List index out of range.
您的表述类似于动态规划。如果您使用动态规划和 python 关键字进行搜索,您可以找到很好的示例。特别是 https://www.geeksforgeeks.org/0-1-knapsack-problem-dp-10/ 和 https://codereview.stackexchange.com/questions/20569/dynamic-programming-knapsack-solutionhttps://www.geeksforgeeks.org/0-1-knapsack-problem-dp-10/