Advertisement
Guest User

Untitled

a guest
Jul 20th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. def kns(weights, values, w):
  2. dic = [(weights[i], values[i]) for i in range(len(weights))]
  3. ks_wv = [0 for i in range(w+1)]
  4.  
  5. for d in dic:
  6. weight = d[0]
  7. value = d[1]
  8. for _w in reversed(range(len(ks_wv))):
  9. # print("weight {}, w {}".format(weight, _w))
  10. if weight <= _w:
  11. ks_wv[_w] = max(ks_wv[_w], value + ks_wv[_w - weight])
  12.  
  13. return ks_wv[w]
  14.  
  15. values = [60, 100, 120]
  16. weights = [10, 20, 30]
  17. values2 = [30, 15, 20, 20]
  18. weights2 = [4, 1, 3, 1]
  19. values3 = [7, 8, 6]
  20. weights3 = [10, 9, 5]
  21. values4 = [2, 10, 7, 3, 1, 12]
  22. weights4 = [10, 29, 5, 5, 5, 24]
  23. w = 50
  24. w2 = 4
  25. w3 = 15
  26. w4 = 25
  27.  
  28. # print(kns(weights, values, w)) #220
  29. # print(kns(weights2, values2, w2)) #40
  30. # print(kns(weights3, values3, w3)) #14
  31. print(kns(weights4, values4, w4)) #13
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement