亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺析python實(shí)現(xiàn)動(dòng)態(tài)規(guī)劃背包問(wèn)題

 更新時(shí)間:2020年12月31日 09:31:08   作者:Take your time_  
這篇文章主要介紹了python實(shí)現(xiàn)動(dòng)態(tài)規(guī)劃背包問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一個(gè)包可以背4kg的東西,現(xiàn)在有四件東西,重量分別為1kg,4kg,3kg,1kg,價(jià)值為:1500,3000,2000,2000;

現(xiàn)在要求你,在包里背的東西價(jià)值最大,但是不能超過(guò)背包的最大載重量

#幾件物品的重量
w = [0,1,4,3,1]
#幾件物品的價(jià)值
v= [0, 1500, 3000, 2000, 2000]
#物品數(shù)量
n = len(w) - 1
#包的載重量
m = 4
 
#建立一個(gè)列表表示在包中的物品,元素是True時(shí)代表對(duì)應(yīng)元素放入
x = [] 
#放入包中的總價(jià)值
value = 0
#建立一個(gè)矩陣,來(lái)表示在前i個(gè)物品中,當(dāng)載重量是j時(shí),放入包中的最大價(jià)值,table[i][j]
table = [[0 for i in range(m+1)] for j in range(n+1)]
 
def dynamic(w,v,n,m,x):
 #計(jì)算table矩陣
 for i in range(1, n+1): #代表物品一件一件的考慮
  for j in range(1, m+1):  #代表子背包的大小一點(diǎn)一點(diǎn)的考慮
   if (j >= w[i]): #當(dāng)背包的大小大于物品的重量時(shí),考慮放進(jìn)去
    table[i][j] = max(table[i-1][j], table[i-1][j-w[i]] + v[i])
   else:
    table[i][j] = table[i -1][j] #如果放不進(jìn)去,就繼承之前的價(jià)值
    
 #遞推裝入背包中的物體,尋找跳變的地方,從最后結(jié)果開(kāi)始逆推
 j = m
 for i in range(n, 0, -1):
  if table[i][j] > table[i- 1][j]: #如果多加一件物品之后,價(jià)值增大,就將這一件物品加入列表中
   x.append(i)
   j = j - w[i] #此時(shí)為剩余背包的載重量
   
 #返回最大價(jià)值,即表格中最后一行最后一列的值
 value = table[n][m]
 return value
 
print("最大價(jià)值為:", str(dynamic(w, v, n, m, x)))
print("物品的索引:", x)

PS:python動(dòng)態(tài)規(guī)劃之背包問(wèn)題

import numpy as np
def bag(weight,values,weight_cont):
 num = len(weight)
 weight.insert(0,0)
 values.insert(0,0)
 bag = np.zeros((num+1,weight_cont+1),dtype=np.int)
 for i in range(1,num+1):
  for j in range(1,weight_cont+1):
   if j >= weight[i]:
    bag[i][j] = max(bag[i-1][j],bag[i-1][j-weight[i]]+values[i])
   else:
    bag[i][j] = bag[i][j-1]
 return bag[-1][-1]
if __name__ == '__main__':
 weight = [1, 2, 4, 10, 12]
 values = [1200, 1500, 2000, 1300, 2500]
 weight_cont = 20
 re = bag(weight,values,weight_cont)
 print(re)

到此這篇關(guān)于python實(shí)現(xiàn)動(dòng)態(tài)規(guī)劃背包問(wèn)題的文章就介紹到這了,更多相關(guān)python動(dòng)態(tài)規(guī)劃背包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • django寫(xiě)用戶(hù)登錄判定并跳轉(zhuǎn)制定頁(yè)面的實(shí)例

    django寫(xiě)用戶(hù)登錄判定并跳轉(zhuǎn)制定頁(yè)面的實(shí)例

    今天小編就為大家分享一篇django寫(xiě)用戶(hù)登錄判定并跳轉(zhuǎn)制定頁(yè)面的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • 在Python中使用列表生成式的教程

    在Python中使用列表生成式的教程

    這篇文章主要介紹了在Python中使用列表生成式的教程,列表生成式是Python具有的重要特性,需要的朋友可以參考下
    2015-04-04
  • python歸并排序算法過(guò)程實(shí)例講解

    python歸并排序算法過(guò)程實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python歸并排序算法過(guò)程實(shí)例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-11-11
  • 以SQLite和PySqlite為例來(lái)學(xué)習(xí)Python DB API

    以SQLite和PySqlite為例來(lái)學(xué)習(xí)Python DB API

    本文將以SQLite和PySqlite為例來(lái)學(xué)習(xí)Python DB API,pysqlite是一個(gè)sqlite為python 提供的api接口,它讓一切對(duì)于sqlit的操作都變得異常簡(jiǎn)單
    2020-02-02
  • 淺析python中的del用法

    淺析python中的del用法

    python中的del用法比較特殊,新手學(xué)習(xí)往往產(chǎn)生誤解,弄清del的用法,可以幫助深入理解python的內(nèi)存方面的問(wèn)題。這篇文章主要介紹了python中的del用法,需要的朋友可以參考下
    2020-09-09
  • pandas series序列轉(zhuǎn)化為星期幾的實(shí)例

    pandas series序列轉(zhuǎn)化為星期幾的實(shí)例

    下面小編就為大家分享一篇pandas series序列轉(zhuǎn)化為星期幾的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 深入理解Python虛擬機(jī)中的反序列化pyc文件

    深入理解Python虛擬機(jī)中的反序列化pyc文件

    再這篇文章中我們將主要對(duì)?Code?Object?進(jìn)行分析,并且詳細(xì)它是如何被反序列化的,通過(guò)本篇文章我們將能夠把握整個(gè)?pyc?文件結(jié)構(gòu),感興趣的可以了解一下
    2023-05-05
  • Python3.8中使用f-strings調(diào)試

    Python3.8中使用f-strings調(diào)試

    這篇文章主要介紹了Python3.8中使用f-strings調(diào)試的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • FP-growth算法發(fā)現(xiàn)頻繁項(xiàng)集——發(fā)現(xiàn)頻繁項(xiàng)集

    FP-growth算法發(fā)現(xiàn)頻繁項(xiàng)集——發(fā)現(xiàn)頻繁項(xiàng)集

    常見(jiàn)的挖掘頻繁項(xiàng)集算法有兩類(lèi),一類(lèi)是Apriori算法,另一類(lèi)是FP-growth。Apriori通過(guò)不斷的構(gòu)造候選集、篩選候選集挖掘出頻繁項(xiàng)集,需要多次掃描原始數(shù)據(jù),當(dāng)原始數(shù)據(jù)較大時(shí),磁盤(pán)I/O次數(shù)太多,效率比較低下
    2021-06-06
  • 利用Python3編寫(xiě)一個(gè)電腦錄屏神器

    利用Python3編寫(xiě)一個(gè)電腦錄屏神器

    這篇文章主要為大家詳細(xì)介紹了如何利用Python3編寫(xiě)一個(gè)簡(jiǎn)易的電腦錄屏神器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下
    2022-08-08

最新評(píng)論