【作業】演算法第三章作業
(1)你對動態規劃演算法的理解
動態規劃演算法通常用於求解具有某種最優性質的問題。在這類問題中,可能會有許多可行解。每一個解都對應於一個值,我們希望找到具有最優值的解。動態規劃演算法與分治法類似,其基本思想也是將待求解問題分解成若干個子問題,先求解子問題,然後從這些子問題的解得到原問題的解。與分治法不同的是,適合於用動態規劃求解的問題,經分解得到子問題往往不是互相獨立的。若用分治法來解這類問題,則分解得到的子問題數目太多,有些子問題被重複計算了很多次。如果我們能夠儲存已解決的子問題的答案,而在需要時再找出已求得的答案,這樣就可以避免大量的重複計算,節省時間。我們可以用一個表來記錄所有已解的子問題的答案。不管該子問題以後是否被用到,只要它被計算過,就將其結果填入表中。這就是動態規劃法的基本思路。具體的動態規劃演算法多種多樣,但它們具有相同的填表格式。
(2)分別列出程式設計題1、2的遞迴方程
程式設計題1: d[i]=max(d[i],d[j]+1)
程式設計題2: cost[i][j]=m[j]+cost[j][i]
(3)說明結對程式設計情況
我與菲凡兩個人在做題的時候經常會進入激烈的探討,互相誰也不服誰,就差大一架,但是感覺正是有這樣的討論,才讓我們在互相進步,互相get到對方的idea。感覺這樣的方法比自己一個人做來的更有趣更有意義。
相關推薦
【作業】演算法第三章作業
(1)你對動態規劃演算法的理解 動態規劃演算法通常用於求解具有某種最優性質的問題。在這類問題中,可能會有許多可行解。每一個解都對應於一個值,我們希望找到具有最優值的解。動態規劃演算法與分治法類似,其基本思想也是將待求解問題分解成若干個子問題,先求解子問題,然後從這些子問題的解得到原問題的解。與分治法不同的是
【作業】演算法第4章作業
1. 你對貪心演算法的理解: 我認為貪心演算法正如其名,在對問題求解時,每一步都只考慮到當前情況下的最好選擇,而非從整體上最優考慮。 2. 請說明汽車加油問題的貪心選擇性質: 由於需要加油的次數最少,需要汽車每加一次油就跑最遠的路,如果剩下的油量已經不足以到達下個站點再選擇加油。 3.&nb
【演算法作業】演算法第四章作業
1.你對貪心演算法的理解 貪心演算法的基本思路是從問題的某一個初始解出發一步一步地進行,根據某個優化測度,每一步都要確保能獲得區域性最優解。每一步只考慮一個數據,他的選取應該滿足區域性優化的條件。若下一個資料和部分最優解連在一起不再是可行解時,就不把該資料新增到部分解中,直到把所有
【作業】演算法第5章作業
1、對回溯演算法的理解 回溯演算法實際上一個類似列舉的搜尋嘗試過程,主要是在搜尋嘗試過程中尋找問題的解,當發現已不滿足求解條件時,就“回溯”返回,嘗試別的路徑。回溯法是一種選優搜尋法,按選優條件向前搜尋,以達到目標。但當探索到某一步時,發現原先選擇並不優或達不到目標,就退回一步重新選擇,這種走不通就退回再走
【實踐】演算法第三章上機實踐報告
1. 實踐題目 7-3 編輯距離問題 2. 問題描述 設A和B是2個字串。要用最少的字元操作將字串A轉換為字串B。這裡所說的字元操作包括 (1)刪除一個字元; (2)插入一個字元; (3)將一個字元改為另一個字元。 將字串A變換為字串B所用的最少字元運算元稱為字串A到 B的編輯距離,記為
【實踐報告】演算法第三章實踐報告
1.實踐題目 7-2最大子段和 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。 要求演算法的時間複雜度為O(n)。
【實踐】演算法第四章上機實踐報告
1. 實踐題目:卡了很久的”刪數問題“ 2. 問題描述: 給定n位正整數a,去掉其中任意k≤n 個數字後,剩下的數字按原次序排列組成一個新 的正整數。對於給定的n位正整數a和正整數 k,設計一個演算法找出剩下數字組成的新數最小的刪數方案。 要求輸出最小數。如:給定a = 178543,k = 4,則輸出
【演算法】第三章作業 實踐報告
【演算法】實踐第三章作業 1. 實踐題目 最大子段和 2. 問題描述 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。
杭電acm公選課作業解題報告——第三章 貪心演算法。
課堂筆記: 在對問題求解時,總是作出在當前看來是最好的選擇。也就是說,不從整體上加以考慮,它所作出的僅僅是在某種意義上的區域性最優解(是否是全域性最優,需要證明)。很多貪心型別的題目都不是最樸素的貪心,而是需要做一些變化,對於我們,關鍵是找到貪心的本質! 求解基本步驟:
C++ primer第三章作業
常量 空字符 prim iostream 作用 所有 使用範圍 get primer 3.1節 練習3.1: 使用恰當的using聲明重做1.4.1節(第11頁)和2.6.2節(第67頁)的練習 #ifdef 1 #include <iostream> usin
軟件工程:第三章作業
也會 流程 這也 得到 mil 極限 我會 font 告訴 1. 選哪一種醫生? 我的理解: A經驗有限,程序員並不完全知道要如何實現這個功能,需要通過學習、尋找資料等方式來解決問題。 B程序員喜歡以新的方法解決現有問題,同樣喜歡發明方法解決尚未解決的問題有時可能會失
具體數學第三章作業解答
r+ -m 的人 src 人的 http display 去掉 初始 老師的具體數學作業要電子版了,那就把我自己的解答放在這裏。 10. \[ \begin{array}{l} \left \lceil \frac{2x+1} {2} \right \rceil-\lef
算法第三章作業
方程 向上 解決 代碼 遞增 這樣的 不存在 遞歸 出現 1、對動態規劃算法的理解: 動態規劃算法與分治法類似,其基本思想也是將待求解問題分解成若幹個子問題,這些子問題往往有重疊子問題,從這些子問題的解得到原問題的解。可以用一個表來記錄所有已經解決的子問題的答案,不管這個子
軟體工程導論第三章作業3.3
銀行計算機儲蓄系統的工作過程大致如下:儲戶填寫的存單或取款單由業務員輸入系統,如果是存款則系統記錄存款人姓名、住址(或電話號碼)、身份證號碼、存款型別、存款日期、到期日期、利率及密碼等資訊。並印出存單給儲戶;如果是取款而且存款時留有密碼,則系統首先核對儲戶密碼,若密碼正確或存款時未留密碼,則系
[作業系列]演算法第3章上機實踐報告
1.實踐題目 7-3編輯距離問題 2.問題描述 設A和B是2個字串。要用最少的字元操作將字串A轉換為字串B。這裡所說的字元操作包括 (1)刪除一個字元; (2)插入一個字元; (3)將一個字元改為另一個字元。 將字串A變換為字串B所用的最少字元運算元稱為字串A到 B的編輯距離,記
第三章作業
for lse 編程 交流 amp 算法 就是 子結構 必須 動態規劃 我們知道,問題可以采用動態規劃算法進行解決的一個重要性質即是該問題必須具備最優子結構性質,所謂的最優子結構性質用大白話說就是指原問題的最優解必然包含了原問題的子問題的一個最優解。 題目1 for(i=
HTML第三章作業
一、簡答題 1.標籤的for屬性表示什麼? for 屬性規定 label 與哪個表單元素繫結,label的for屬性要與繫結表單元素(input)的ID對應。繫結完成後可以通過點選label觸發表單元素的預設屬性。通俗的講就是你繫結完了點lebel就相當於點選表單元素(input)。 2
第三章作業心得
你對動態規劃演算法的理解(2分) 動態規劃演算法思想和分治法的思想是類似的,都是將問題的規模縮小,然後求解子問題,根據子問題來解決總問題,但是分治演算法 的子問題之間是相互獨立的,因此在對子問題的求解過程中就產生了很多重複的計算,遞迴就是這種問題很典型的代表,究其原因 就是對子問題的求解過程沒有保留中間結果以
演算法第4章作業
你對貪心演算法的理解(2分) 請說明汽車加油問題的貪心選擇性質(2分) 請說明在本章學習過程中遇到的問題及結對程式設計的情況(1分) 1、貪心演算法:在對問題求解時,總是做出在當前看來是最好的選擇。 也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。 我的理解是在
演算法第四章作業
1.你對貪心演算法的理解 貪心演算法指通過一系列的選擇來得到問題的解,它所做的每一個選擇都是當前狀態下的區域性最好選擇,即(區域性最優解 > 全域性最優解)。一般來說,凡是經過數學歸納法證明可以採用貪心法的情況都應該採用,因為其具有高效性。同時,如果一個問題具有貪心選擇性質和最優子結構性質,那麼使用貪