最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

背包問題-動態(tài)規(guī)劃java實現(xiàn)的分析與代碼

 更新時間:2020年12月20日 09:14:53   作者:猿探索  
這篇文章主要給大家介紹了關(guān)于背包問題動態(tài)規(guī)劃java實現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、動態(tài)規(guī)劃的原理

動態(tài)規(guī)劃(dynamic programming)是運(yùn)籌學(xué)的一個分支,是求解決策過程(decision process)最優(yōu)化的數(shù)學(xué)方法。20世紀(jì)50年代初美國數(shù)學(xué)家R.E.Bellman等人在研究多階段決策過程(multistep decision process)的優(yōu)化問題時,提出了著名的最優(yōu)化原理(principle of optimality),把多階段過程轉(zhuǎn)化為一系列單階段問題,利用各階段之間的關(guān)系,逐個求解,創(chuàng)立了解決這類過程優(yōu)化問題的新方法–動態(tài)規(guī)劃。1957年出版了他的名著《Dynamic Programming》,這是該領(lǐng)域的第一本著作。

動態(tài)規(guī)劃一般可分為線性動規(guī),區(qū)域動規(guī),樹形動規(guī),背包動規(guī)四類。舉例:線性動規(guī):攔截導(dǎo)彈,合唱隊形,挖地雷,建學(xué)校,劍客決斗等;區(qū)域動規(guī):石子合并, 加分二叉樹,統(tǒng)計單詞個數(shù),炮兵布陣等;樹形動規(guī):貪吃的九頭龍,二分查找樹,聚會的歡樂,數(shù)字三角形等;背包問題:01背包問題,完全背包問題,多重背包問題,分組背包問題,二維背包,裝箱問題,擠牛奶(同濟(jì)ACM第1132題)等;

二、分析與代碼實現(xiàn)

1、分析

題目:在某個深夜里,一個小偷背著一個總共只能裝16v體積的背包進(jìn)入一家商店偷東西。假如店里有手機(jī)一部,價格為2000元,體積為1v;薯片一包,價格為5元,體積為5v;翡翠一塊,價格為100000元,體積為10v;一套四大名著,價格30元,體積為6v;電腦一臺,價格為6000元,體積為10v。怎么樣能夠讓背包裝的下,并且又能使拿到的東西總價格最多?

這種情況下,一共5件東西。小偷偷東西的事件只有兩種:拿,不拿。
當(dāng)他拿的時候,背包體積變小,物件數(shù)量減1;當(dāng)他不拿的時候,背包體積不變,物件數(shù)量減1(因為小偷選擇不拿這件東西的時候不會返回繼續(xù)拿,所以他失去了這件東西選擇的機(jī)會)。

物件數(shù)量為i,背包容納量為v。

1.不拿 b(i-1,v)

2.拿 b(i-1,v-該物品的體積)

兩者取最大值

核心代碼:

b[i][j]=Math.max(b[i-1][j],b[i-1][j-v]+p);

2、代碼分析

public class _背包問題 {

 //物品體積
 private static int[] volume={1,5,10,6,10};
 //物品價格
 private static int[] price={2000,5,100000,30,6000};
 //背包容量
 private static int maxVolumen=16;
 //物品數(shù)量
 private static int count=5;

 public static int solution(int maxVolumen,int count,int[] volume,int[] price){
  int[][] b=new int[count+1][maxVolumen+1];
  for (int i=1;i<=count;i++){
   //拿到物品的價格
   int p=price[i-1]; 
   //拿到物品的體積
   int v=volume[i-1]; 
   for (int j=1;j<=maxVolumen;j++){
    //如果物品的體積大于背包容量時,選擇不拿。
    if (j<v){
     b[i][j]=b[i-1][j];
     continue;
    }
    b[i][j]=Math.max(b[i-1][j],b[i-1][j-v]+p);
   }
  }
  return b[count][maxVolumen];
 }

 public static void main(String[] args) {
  System.out.println(solution(16,5,volume,price));
 }
}

總結(jié)

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

相關(guān)文章

  • JAVA+MySQL實現(xiàn)分庫分表的項目實踐

    JAVA+MySQL實現(xiàn)分庫分表的項目實踐

    本文主要介紹了JAVA+MySQL實現(xiàn)分庫分表的項目實踐,包括水平分表、垂直分表和水平分庫等策略,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05
  • Spring注解驅(qū)動之BeanDefinitionRegistryPostProcessor原理解析

    Spring注解驅(qū)動之BeanDefinitionRegistryPostProcessor原理解析

    這篇文章主要介紹了Spring注解驅(qū)動之BeanDefinitionRegistryPostProcessor原理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Spring?BOOT?AOP基礎(chǔ)應(yīng)用教程

    Spring?BOOT?AOP基礎(chǔ)應(yīng)用教程

    這篇文章主要介紹了Spring?BOOT?AOP的使用,文章從相關(guān)問題展開全文內(nèi)容詳情,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • Java中如何獲取文件的上級目錄

    Java中如何獲取文件的上級目錄

    這篇文章主要介紹了Java中如何獲取文件的上級目錄問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 使用maven實現(xiàn)版本覆蓋的案例分享

    使用maven實現(xiàn)版本覆蓋的案例分享

    這篇文章主要介紹了使用maven實現(xiàn)版本覆蓋的案例分享,文中通過圖文結(jié)合的方式給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-10-10
  • PC 端微信掃碼注冊和登錄實例

    PC 端微信掃碼注冊和登錄實例

    這篇文章主要介紹了PC 端微信掃碼注冊和登錄實例的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • swing分割窗口控件JSplitPane使用方法詳解

    swing分割窗口控件JSplitPane使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了swing分割窗口控件JSplitPane的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • ssh框架實現(xiàn)文件上傳下載實例代碼

    ssh框架實現(xiàn)文件上傳下載實例代碼

    本篇文章主要介紹了ssh框架文件上傳下載實例代碼,實例分析了Spring+struts+Hibernate的使用技巧,非常具有實用價值,需要的朋友可以參考下。
    2017-03-03
  • 淺談JAVA中輸入輸出流實例詳解

    淺談JAVA中輸入輸出流實例詳解

    Java中的流分為兩種,一種是字節(jié)流,另一種是字符流。這篇文章主要介紹了JAVA中輸入輸出流的相關(guān)資料,需要的朋友可以參考下
    2016-07-07
  • 詳解使用Spring3 實現(xiàn)用戶登錄以及權(quán)限認(rèn)證

    詳解使用Spring3 實現(xiàn)用戶登錄以及權(quán)限認(rèn)證

    這篇文章主要介紹了詳解使用Spring3 實現(xiàn)用戶登錄以及權(quán)限認(rèn)證,這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。
    2017-03-03

最新評論

上饶市| 洛阳市| 大庆市| 宜兴市| 边坝县| 和平县| 怀宁县| 南充市| 揭阳市| 秭归县| 拜泉县| 申扎县| 黎川县| 奉新县| 琼结县| 若尔盖县| 宜兰市| 合川市| 武安市| 合阳县| 井冈山市| 闽清县| 岚皋县| 肇源县| 巍山| 河津市| 徐汇区| 海盐县| 农安县| 通山县| 余江县| 五常市| 赞皇县| 贵德县| 南部县| 阳曲县| 晋宁县| 秭归县| 黄龙县| 建宁县| 崇信县|