有一個國家發現了W座金礦,每座金礦的黃金儲量不同,需要參與挖掘的勞工數也不同。參與挖礦勞工的總數是P人.每座金礦要麼全挖,要麼不挖,不能派出一半人挖取一半金礦。要求用程式求解出,要想得到盡可能多的黃金,應該選擇挖取哪幾座金礦?
#個人定義:m:金礦座數 n:勞工總數 p[]:每座礦所需要的勞工數 c[]:每座礦的的黃金數
m,n=5,10
def mining(p=[]*m,c=[]*m):
preresult= [0] * n
result = [0] * n
for i in range(n):
if i+1<p[0]:
result[i]=0
else:
result[i]=c[0]
for i in range(m):
for j in range(n):
if j+1<p[i]:
result[j]=preresult[j]
else:
result[j]=max(preresult[j], preresult[j-p[i]+1] + c[i])
preresult= result
# print result
return result[n-1]
p1=[5,5,3,4,3]
c1=[400,500,200,300,350]
print (mining(p1,c1))
p1=c1
print max(1,1+2)