動態規劃 母牛生小牛問題

2021-09-08 10:53:42 字數 663 閱讀 7592

一頭剛出生的小母牛,4年後生一頭小母牛,以後每年生一頭,現有一頭剛出生的小母牛,問20年後共有多少頭牛?

列舉前n年的情況:1、1、1、2、3、4、6、8、11。。。

將規律抽象成公式:

f(1)=1

f(2)=1

f(3)=1

f(n)=f(n-1)+f(n-3)

f(n):表示第n年共有多少頭牛

f(n-1):表示第n-1年共有多少頭牛

f(n-3):表示第(n-3)年出生的母牛在第n年生的小母牛數

從公式f(n)=f(n-1)+f(n-3)來看,可以採用兩種方法:

1、簡單的遞迴實現(自上而下,適用於小規模的計算,否則大量的函式遞迴將導致棧溢位)

2、動態規劃(自下而上,開闢空間儲存每一步的結果,適用於大規模計算)

程式設計實現:

//

recursive method

int numofcow(int

n)

//

dynamic programming method

int numofcow2(int

n)

return

num[n];

}

母牛生小牛問題

若母牛從其出生第四年 3周年後 開始每年都會生一頭小 母牛,按這個規律,1頭年齡為 year 的母牛在 futureyear 個年頭後會生幾頭母牛 c code class cow console readkey public cow intyear int futureyear private i...

php演算法 母牛生小牛問題

有一母牛,到4歲可生育,每年一頭,所生均是一樣的母牛,到15歲絕育,不再能生,20歲死亡,問n年後有多少頭牛。遞迴版 論壇裡的 function t n if j 20 return num 非遞迴版 原創 function suanfa n 10 else elseif age 15 elseif...

母牛6歲生小牛問題

題目 1 每頭牛6牛的時候開始生小牛,並且生得牛都是母牛 2 農場來了一頭6歲的牛 第一年就生下一頭小牛 問 20年後,農場有多少頭牛 解題思路1 我拿到這個問題的第一反應就是使用物件,建立乙個cow類,然後有乙個age屬性,再用乙個全域性變數cows來記錄牛的數量,每當我們例項化乙個牛cows就會...