jk自慰喷水,无码精品一区二区三区在线播放,亚洲精品无码AV中文永久在线,四虎影院国产精品

太原辰晨電腦培訓(xùn)學(xué)校

[平面設(shè)計(jì)]
獵學(xué)網(wǎng)訂閱號(hào)
獵學(xué)網(wǎng)官方企業(yè)微信
位置: 獵學(xué)網(wǎng) > 學(xué)校機(jī)構(gòu) > 太原辰晨電腦培訓(xùn)學(xué)校 > 學(xué)習(xí)資訊> 2011年計(jì)算機(jī)二級(jí)考試二級(jí)C輔導(dǎo)實(shí)例編

2011年計(jì)算機(jī)二級(jí)考試二級(jí)C輔導(dǎo)實(shí)例編

57 2017-04-13

為了方便廣大考生更好的復(fù)習(xí),小編編輯整理提供了2011年C語言輔導(dǎo)實(shí)例編程(八),以供各位考生復(fù)習(xí)參考,希望對(duì)考生復(fù)習(xí)有所幫助。

最大化投資回報(bào)問題的實(shí)現(xiàn)

最大化投資回報(bào)問題:某人有一定的資金用來購(gòu)買不同面額的債卷,不同面額債卷的年收益是不同的,求給定資金,年限以及債卷面額、收益的情況下怎樣購(gòu)買才能使此人獲得最大投資回報(bào)。

程序輸入約定:第一行第一列表示資金(1000的倍數(shù))總量,第二列表示投資年限;第二行表示債卷面額總數(shù);從第三行開始每行表示一種債卷,占用兩列,前一列表示債卷面額,后一列表示其年收益,如下輸入實(shí)例,

100001

2

4000400

3000250

程序?qū)崿F(xiàn)如下,注釋幾乎說明了一切,所以不再另外分析。

///此數(shù)組是算法的關(guān)鍵存儲(chǔ)結(jié)構(gòu),用來存儲(chǔ)不同階段各種債卷

///組合下對(duì)應(yīng)可獲取的最大利息。

intsaifa[80005];

///此函數(shù)用于計(jì)算當(dāng)前債卷在不同購(gòu)買額下的最優(yōu)利息情況,

///注意此時(shí)的利息情況是基于上一次債卷的情況下計(jì)算得到的,

///也就是說當(dāng)前利息最優(yōu)是基于上一次利息最優(yōu)的基礎(chǔ)上計(jì)算出來的,

///這也正好體現(xiàn)了動(dòng)態(tài)規(guī)劃中“最優(yōu)化原則”:不管前面的策略如何,

///此后的決策必須是基于當(dāng)前狀態(tài)(由上一次決策產(chǎn)生)的最優(yōu)決策。

/*

動(dòng)態(tài)規(guī)劃的求解過程一般都可以用一個(gè)最優(yōu)決策表來描述,

對(duì)于本程序,以示例輸入為例,對(duì)于第一年,其最優(yōu)決策表如下:

在以前購(gòu)買了0張4000的債卷的基礎(chǔ)上再2張3000的,也可以在以前購(gòu)

買了1張4000的基礎(chǔ)上再買1張3000,經(jīng)比較取其收益大的,這就是典

型的動(dòng)態(tài)規(guī)劃中的當(dāng)前最優(yōu)狀態(tài)計(jì)算。

本程序中把上面的最優(yōu)決策二維表用一個(gè)一維數(shù)組表示,值得借鑒。

*/

voidadd(inta,intb)

{cout《《a《《“”《《b《《endl;//fordebug

for(inti=0;i《=80000;i++)

{

if(i+a》80000)

{

break;

}

if(saifa[i]+b》saifa[i+a])//累計(jì)同時(shí)購(gòu)買多種債卷時(shí)的利息

{

saifa[i+a]=saifa[i]+b;

}

if(i《200)//fordebug

cout《《i《《“-”《《saifa[i]《《“”;

}

cout《《endl;//fordebug

}

intmain(void)

012345678910(*1000)--(1)

0000400400400400800800800--(2)

000250400400500650800900900--(3)

(1)--表示首先選利息為400的債卷在對(duì)應(yīng)資金下的最優(yōu)利息。

(2)--表示可用來購(gòu)買債卷的資金。

(3)--表示在已有狀態(tài)下再選擇利息為300的債卷在對(duì)應(yīng)資金下的最優(yōu)利息。

注意上面表格,在求購(gòu)買利息為300的債卷獲得的最優(yōu)收益的時(shí)候,

參考了以前的最優(yōu)狀態(tài),以3行8列的650為例,7(*1000)可以

{

intn,d,money,year,pay,bond;

intii,i;

for(ii=0;ii

{

memset(saifa,0,sizeof(saifa));

scanf(“%d%d”,&money,&year);

scanf(“%d”,&d);

for(i=0;i

{

scanf(“%d%d”,&pay,&bond);

add(pay/1000,bond);

}

//計(jì)算指定年限內(nèi)最優(yōu)組合的本金利息總額

for(i=0;i

{cout《《saifa[money/1000]《《“”;//fordebug

money+=saifa[money/1000];

}

cout《《endl;//fordebug

printf(“%d\n”,money);

}

return0;

}

上述程序?qū)崿F(xiàn)方法同樣適合于背包問題,最優(yōu)庫存問題等,只是針對(duì)具體情況,最優(yōu)決策表的表示和生成會(huì)有所不同。

溫馨提示: 專業(yè)老師1對(duì)1為您解答    馬上填寫,¥1000 元豪禮免費(fèi)領(lǐng)!

掃一掃
獲取更多福利

×
獵學(xué)網(wǎng)