-4

I was writing knapsack

w = [0 for x in xrange(item_count+1)]  
v = [0 for x in xrange(item_count+1)]  

assigned value and weight (v, w) respectively. created

c = [[0 for x in xrange(capacity+1)] for x in xrange(item_count+1)]

c, w and v is assigned values after this respectively(not zero)

for i in range(1,item_count+1):  
    #for ever possible weight  
    for j in range(0,capacity+1):       
    #can we add this item to this?  
        if w[i] <= j :  
            c[i][j] = max(c[i-1][j], v[i] + c[i-1][j-w[i]])  
        else:  
            c[i][j] = c[i-1][j]  

This if w[i] <= j: is always False even if on printing w[i] seems greater than j. Dont know why?

ashmish2
  • 2,885
  • 8
  • 40
  • 54

1 Answers1

2

w[i] is always 0 in your code. Never touched after initilization

DhruvPathak
  • 42,059
  • 16
  • 116
  • 175