Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Item():
- def __init__(self,nome,occ):
- #@param nome:String
- #@param occ:Integer
- self.Nome=nome
- self.occ=occ
- self.single=occ
- self.a=1
- def addItem(self):
- self.a=self.a+1
- self.occ=self.single*a
- def retOcc(self):
- #@return int:Integer ritorna il volume totale
- return self.occ
- def retNome(self):
- #@return Nome:String
- return self.Nome
- class Knapsack():
- def __init__(self,c):
- #@param c: Integer
- #@param occ: Integer
- #@param name: String
- assert c>0
- self.cap=c
- self.listItem=[]
- self.tot=0
- def volumeAdd(self,occ):
- #@param occ:Integer
- #@return tot:Integer
- self.tot=occ+self.tot
- return self.tot
- def nElem(self):
- #@return len:Integer
- return len(self.listItem)
- def occMax(self):
- #@return max:Integer
- max=0
- for l in self.listItem:
- if l.retOcc()>max:
- max=l.retOcc()
- return max
- def occMin(self):
- #@return min:Integer
- if len(self.listItem)>0:
- min=self.cap
- for l in self.listItem:
- if l.retOcc()<min:
- min=l.retOcc()
- else:
- min=0
- return min
- def findItem(self,item):
- #@param item:Item
- #@return i:Integer
- for i in range(0,len(self.listItem)):
- if self.listItem[i].Nome==item.Nome:
- return i
- return 0
- def add(self,item):
- #@param item:Item
- #se lo strumento ?? gi?? presente nello zaino allora attraverso la funzione addItem() verr?? aggiunto con lo stesso volume dato inizialmente,ignorando i successivi valori.
- i=self.findItem(item)
- if self.findItem(item)!=0:
- self.listItem[i].addItem()
- else:
- assert (self.cap>=self.volumeAdd(item.occ))
- self.listItem.append(item)
- zaino=Knapsack(34)
- i=Item("uni",10)
- zaino.add(i)
- print zaino.occMin()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement