1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      什么是動(dòng)態(tài)規(guī)劃

      這篇文章主要介紹“什么是動(dòng)態(tài)規(guī)劃”,在日常操作中,相信很多人在什么是動(dòng)態(tài)規(guī)劃問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”什么是動(dòng)態(tài)規(guī)劃”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

      創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供大興網(wǎng)站建設(shè)、大興做網(wǎng)站、大興網(wǎng)站設(shè)計(jì)、大興網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、大興企業(yè)網(wǎng)站模板建站服務(wù),10余年大興做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

      什么是動(dòng)態(tài)規(guī)劃

      動(dòng)態(tài)規(guī)劃,英文:Dynamic Programming,簡稱DP,如果某一問題有很多重疊子問題,使用動(dòng)態(tài)規(guī)劃是最有效的。

      所以動(dòng)態(tài)規(guī)劃中每一個(gè)狀態(tài)一定是由上一個(gè)狀態(tài)推導(dǎo)出來的,這一點(diǎn)就區(qū)分于貪心,貪心沒有狀態(tài)推導(dǎo),而是從局部直接選最優(yōu)的,

      在關(guān)于貪心算法,你該了解這些!中我舉了一個(gè)背包問題的例子。

      例如:有N件物品和一個(gè)最多能背重量為W 的背包。第i件物品的重量是weight[i],得到的價(jià)值是value[i]  。每件物品只能用一次,求解將哪些物品裝入背包里物品價(jià)值總和最大。

      動(dòng)態(tài)規(guī)劃中dp[j]是由dp[j-weight[i]]推導(dǎo)出來的,然后取max(dp[j], dp[j - weight[i]] +  value[i])。

      但如果是貪心呢,每次拿物品選一個(gè)最大的或者最小的就完事了,和上一個(gè)狀態(tài)沒有關(guān)系。

      所以貪心解決不了動(dòng)態(tài)規(guī)劃的問題。

      其實(shí)大家也不用死扣動(dòng)規(guī)和貪心的理論區(qū)別,后面做做題目自然就知道了。

      而且很多講解動(dòng)態(tài)規(guī)劃的文章都會(huì)講最優(yōu)子結(jié)構(gòu)啊和重疊子問題啊這些,這些東西都是教科書的上定義,晦澀難懂而且不太實(shí)用。

      大家知道動(dòng)規(guī)是由前一個(gè)狀態(tài)推導(dǎo)出來的,而貪心是局部直接選最優(yōu)的,對于刷題來說就夠用了。

      上述提到的背包問題,后序會(huì)詳細(xì)講解。

      動(dòng)態(tài)規(guī)劃的解題步驟

      做動(dòng)規(guī)題目的時(shí)候,很多同學(xué)會(huì)陷入一個(gè)誤區(qū),就是以為把狀態(tài)轉(zhuǎn)移公式背下來,照葫蘆畫瓢改改,就開始寫代碼,甚至把題目AC之后,都不太清楚dp[i]表示的是什么。

      這就是一種朦朧的狀態(tài),然后就把題給過了,遇到稍稍難一點(diǎn)的,可能直接就不會(huì)了,然后看題解,然后繼續(xù)照葫蘆畫瓢陷入這種惡性循環(huán)中。

      狀態(tài)轉(zhuǎn)移公式(遞推公式)是很重要,但動(dòng)規(guī)不僅僅只有遞推公式。

      對于動(dòng)態(tài)規(guī)劃問題,我將拆解為如下五步曲,這五步都搞清楚了,才能說把動(dòng)態(tài)規(guī)劃真的掌握了!

      • 確定dp數(shù)組(dp table)以及下標(biāo)的含義

      • 確定遞推公式

      • dp數(shù)組如何初始化

      • 確定遍歷順序

      • 舉例推導(dǎo)dp數(shù)組

      一些同學(xué)可能想為什么要先確定遞推公式,然后在考慮初始化呢?

      因?yàn)橐恍┣闆r是遞推公式?jīng)Q定了dp數(shù)組要如何初始化!

      后面的講解中我都是圍繞著這五點(diǎn)來進(jìn)行講解。

      可能刷過動(dòng)態(tài)規(guī)劃題目的同學(xué)可能都知道遞推公式的重要性,感覺確定了遞推公式這道題目就解出來了。

      其實(shí) 確定遞推公式 僅僅是解題里的一步而已!

      一些同學(xué)知道遞推公式,但搞不清楚dp數(shù)組應(yīng)該如何初始化,或者正確的遍歷順序,以至于記下來公式,但寫的程序怎么改都通過不了。

      后序的講解的大家就會(huì)慢慢感受到這五步的重要性了。

      動(dòng)態(tài)規(guī)劃應(yīng)該如何debug

      相信動(dòng)規(guī)的題目,很大部分同學(xué)都是這樣做的。

      看一下題解,感覺看懂了,然后照葫蘆畫瓢,如果能正好畫對了,萬事大吉,一旦要是沒通過,就怎么改都通過不了,對  dp數(shù)組的初始化,遞歸公式,遍歷順序,處于一種黑盒的理解狀態(tài)。

      寫動(dòng)規(guī)題目,代碼出問題很正常!

      找問題的最好方式就是把dp數(shù)組打印出來,看看究竟是不是按照自己思路推導(dǎo)的!

      一些同學(xué)對于dp的學(xué)習(xí)是黑盒的狀態(tài),就是不清楚dp數(shù)組的含義,不懂為什么這么初始化,遞推公式背下來了,遍歷順序靠習(xí)慣就是這么寫的,然后一鼓作氣寫出代碼,如果代碼能通過萬事大吉,通過不了的話就憑感覺改一改。

      這是一個(gè)很不好的習(xí)慣!

      做動(dòng)規(guī)的題目,寫代碼之前一定要把狀態(tài)轉(zhuǎn)移在dp數(shù)組的上具體情況模擬一遍,心中有數(shù),確定最后推出的是想要的結(jié)果。

      然后再寫代碼,如果代碼沒通過就打印dp數(shù)組,看看是不是和自己預(yù)先推導(dǎo)的哪里不一樣。

      如果打印出來和自己預(yù)先模擬推導(dǎo)是一樣的,那么就是自己的遞歸公式、初始化或者遍歷順序有問題了。

      如果和自己預(yù)先模擬推導(dǎo)的不一樣,那么就是代碼實(shí)現(xiàn)細(xì)節(jié)有問題。

      這樣才是一個(gè)完整的思考過程,而不是一旦代碼出問題,就毫無頭緒的東改改西改改,最后過不了,或者說是稀里糊涂的過了。

      這也是我為什么在動(dòng)規(guī)五步曲里強(qiáng)調(diào)推導(dǎo)dp數(shù)組的重要性。

      舉個(gè)例子哈:在「代碼隨想錄」刷題小分隊(duì)微信群里,一些錄友可能代碼通過不了,會(huì)把代碼拋到討論群里問:我這里代碼都已經(jīng)和題解一模一樣了,為什么通過不了呢?

      發(fā)出這樣的問題之前,其實(shí)可以自己先思考這三個(gè)問題:

      • 這道題目我舉例推導(dǎo)狀態(tài)轉(zhuǎn)移公式了么?

      • 我打印dp數(shù)組的日志了么?

      • 打印出來了dp數(shù)組和我想的一樣么?

      如果這靈魂三問自己都做到了,基本上這道題目也就解決了,或者更清晰的知道自己究竟是哪一點(diǎn)不明白,是狀態(tài)轉(zhuǎn)移不明白,還是實(shí)現(xiàn)代碼不知道該怎么寫,還是不理解遍歷dp數(shù)組的順序。

      然后在問問題,目的性就很強(qiáng)了,群里的小伙伴也可以快速知道提問者的疑惑了。

      注意這里不是說不讓大家問問題哈, 而是說問問題之前要有自己的思考,問題要問到點(diǎn)子上!

      大家工作之后就會(huì)發(fā)現(xiàn),特別是大廠,問問題是一個(gè)專業(yè)活,是的,問問題也要體現(xiàn)出專業(yè)!

      如果問同事很不專業(yè)的問題,同事們會(huì)懶的回答,領(lǐng)導(dǎo)也會(huì)認(rèn)為你缺乏思考能力,這對職場發(fā)展是很不利的。

      所以大家在刷題的時(shí)候,就鍛煉自己,養(yǎng)成專業(yè)提問的好習(xí)慣。

      到此,關(guān)于“什么是動(dòng)態(tài)規(guī)劃”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!


      網(wǎng)站題目:什么是動(dòng)態(tài)規(guī)劃
      URL網(wǎng)址:http://www.ef60e0e.cn/article/psjsii.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        敦煌市| 桐梓县| 镇康县| 筠连县| 安吉县| 道真| 大余县| 盐池县| 广西| 锡林郭勒盟| 东平县| 长宁区| 华池县| 青川县| 龙陵县| 河源市| 三门县| 越西县| 上饶市| 秀山| 汤阴县| 中宁县| 荣昌县| 南溪县| 石棉县| 清远市| 满城县| 肃南| 榆林市| 卓资县| 团风县| 凤山市| 邵武市| 田东县| 河北区| 当阳市| 永春县| 巴林右旗| 宁河县| 巨鹿县| 周宁县|