CLRS第十六章思考題

2021-07-07 10:00:13 字數 2269 閱讀 3430

首先證明硬幣找零問題有最優子結構,設我們有找

n 美分的問題的最優解,且知道這個最優解使用了乙個

c美分的硬幣,設這個最優解使用了

k 個硬幣,則我們認為解決這個問題的最優解要用到問題 n−

c美分且使用了 k−

1 個硬幣。很明顯,解決 n−

c 美分且使用了 k−

1 個硬幣使用了

n 美分的解,如果我們有小於 k−

1個硬幣就找了 n−

c 美分問題,則我們可以使用這個解法來代替

n 美分問題,並且少於

k個硬幣,這與最優解矛盾。

a) q=⌊

n/25⌋

,剩下 n′

=nmo

d25美分,d=

⌊n′/

10⌋,剩下d′

=n′mod10,

k=d′

/5,剩下 k′

=d′m

od5 ,其餘的全是

1 美分硬幣,總結就是每次選取最大的零錢,若面額大於選的紙幣,則可以兌換,否則選取較小的零錢,以此類推。

b) 證明略。

c) 現在有

30美分,硬幣面額是 25,

10,1 ,按照貪心演算法得到的解是 25,

1,1,

1,1,

1 ,即

6 個硬幣,實際上應該是 3個

10 美分的硬幣才是最優解。

d) 由最開始的證明可知找零問題有最優子結構,所以可以用動態規劃來做。 設 j

美分的錢用了 c[

j]個硬幣來找零,現在有面值分別為 d1

,d2,

...,

dk的零錢,且存在

1 美分的硬幣。若

j美分使用了乙個面額為 di

的硬幣,則有 c[

j]=1

+c[j

−di]

,對所有 j≤

0 有 c[

j]=0

。 c[

j]=if j≤0

if j > 1

compute-change(n, d, k)

let c[1..n] and denom[1..n] be new arrays

for j = 1

to n

c[j]  = ∞

for i = 1

to k

if j≥di and

1 + c[j-di]  < c[j] 

c[j] = 1 + c[j-di]

denom[j] = di

return c and denom

give-change(j, denom)

if j > 0

give one coin of denomination denom[j]

give-change(j-denom[j], denom)

附上執行**

#include 

#include

using

std::cout;

using

std::endl;

void give_change(int *denom,int j)

}void compute_change(int *d,int n,int value)//n個硬幣面額的陣列和需要找零的面值value}}

give_change(denom,value);

delete c;

delete denom;

}int main()

; std::sort(d,d+3);

compute_change(d,3,value);

return

0;}

a) 先對任務集合按照完成時間長度排序,完成時間越小排在越前面。排序之後是 p1

≤p2≤

...≤

pn。然後依次選擇這些任務排程。ca

vg=(

p1+(

p1+p

2)+.

..+(

p1+p

2+..

.+pn

))/n

。排序時間是 o(

nlgn)

。所以是 o(

nlgn)

的複雜度。

b) 採用最短剩餘時間排程演算法(shortest remaining time first(srtf))。執行時間是 o(

nt) 。

答案略

CLRS第十章思考題

未排序的單鏈表 已排序的單鏈表 未排序的雙向鍊錶 已排序的雙向鍊錶 search l,k o n o n o n o n insert l,x o 1 o n o 1 o n delete l,x o n o n o 1 o 1 successor l,x o 1 o 1 o 1 o 1 prede...

CLRS第五章思考題

a 設在第 j 次增加時,計數器為 i,表示 ni 若計數器增加,則值增加 ni 1 n i 概率為 1 ni 1 ni 因此有 e xj 0 pr 1 pr 0 1 1ni 1 n i 1 n i 1 ni 1ni 1 ni 1 執行一次的期望為 1,執行 n 次的期望為 n。b 一次增加的方差 ...

第十六章 tcp wrappers

在伺服器向外提供的tcp服務上包裝一層安全檢測機制。外來連線請求首先通過這個安全檢測,獲得安全認證後才可被系統服務接受。hosts.allow hosts.deny 在配置檔案中為各服務分別定義訪問控制規則實現訪問控制,檔案中的規則是即時生效的。配置檔案語法 1 daemon list client...