最大化投資回報(bào)問(wèn)題的實(shí)現(xiàn)
最大化投資回報(bào)問(wèn)題:某人有一定的資金用來(lái)購(gòu)買(mǎi)不同面額的債卷,不同面額債卷的年收益是不同的,求給定資金,年限以及債卷面額、收益的情況下怎樣購(gòu)買(mǎi)才能使此人獲得最大投資回報(bào)。
程序輸入約定:第一行第一列表示資金(1000的倍數(shù))總量,第二列表示投資年限;第二行表示債卷面額總數(shù);從第三行開(kāi)始每行表示一種債卷,占用兩列,前一列表示債卷面額,后一列表示其年收益,如下輸入實(shí)例,
10000 1
2
4000 400
3000 250
程序?qū)崿F(xiàn)如下,注釋幾乎說(shuō)明了一切,所以不再另外分析。
/// 此數(shù)組是算法的關(guān)鍵存儲(chǔ)結(jié)構(gòu),用來(lái)存儲(chǔ)不同階段各種債卷
/// 組合下對(duì)應(yīng)可獲取的最大利息。
int saifa[80005];
/// 此函數(shù)用于計(jì)算當(dāng)前債卷在不同購(gòu)買(mǎi)額下的最優(yōu)利息情況,
/// 注意此時(shí)的利息情況是基于上一次債卷的情況下計(jì)算得到的,
/// 也就是說(shuō)當(dāng)前利息最優(yōu)是基于上一次利息最優(yōu)的基礎(chǔ)上計(jì)算出來(lái)的,
/// 這也正好體現(xiàn)了動(dòng)態(tài)規(guī)劃中“最優(yōu)化原則”:不管前面的策略如何,
/// 此后的決策必須是基于當(dāng)前狀態(tài)(由上一次決策產(chǎn)生)的最優(yōu)決策。
/*
動(dòng)態(tài)規(guī)劃的求解過(guò)程一般都可以用一個(gè)最優(yōu)決策表來(lái)描述,
對(duì)于本程序,以示例輸入為例,對(duì)于第一年,其最優(yōu)決策表如下:
0 1 2 3 4 5 6 7 8 9 10(*1000) -- (1)
0 0 0 0 400 400 400 400 800 800 800 -- (2)
0 0 0 250 400 400 500 650 800 900 900 -- (3)
(1) -- 表示首先選利息為400的債卷在對(duì)應(yīng)資金下的最優(yōu)利息。
(2) -- 表示可用來(lái)購(gòu)買(mǎi)債卷的資金。
(3) -- 表示在已有狀態(tài)下再選擇利息為300的債卷在對(duì)應(yīng)資金下的最優(yōu)利息。
注意上面表格,在求購(gòu)買(mǎi)利息為300的債卷獲得的最優(yōu)收益的時(shí)候,
參考了以前的最優(yōu)狀態(tài),以3行8列的650為例,7(*1000)可以
相關(guān)推薦:2011計(jì)算機(jī)等級(jí)考試二級(jí)C輔導(dǎo)實(shí)例編程匯總
計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言歷年真題匯總(2005-2010)
2011年計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言常見(jiàn)問(wèn)題匯總
計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言常見(jiàn)知識(shí)點(diǎn)總結(jié)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |