某農場引進乙隻兔子,該兔到了第3個月就會產下乙隻小兔,從此之後每月產下乙隻小兔。而小兔也一樣,到了出生後的第三個月也會產下乙隻小兔,之後每個月都會產下乙隻小兔,以此類推, 8個月後這個農場一共有多少只兔子?(使用遞迴演算法)
斐波那獎數列:
1,1,2,3,5,8,13,21,34,55,89,144,233,377......
其規律是從第三項起,每一項都是前兩項的和.用遞推公式表達就是:
a1=a2=1,
an=an+1十an-2(n>=3)
將值帶入公式an=an+1十an-2(n>=3)
能這樣遞迴是這些兔子的生產規律都是一致的
剛出生的子兔和剛出生的父兔的家族樹是相似的
而第二個月的父兔撤掉他第三個月新生子兔那乙個分支後家族樹與前兩者也是相似的,因此:
三者都可以用同一計算種群數量計算法則
con(n) = con(n - 1) + con(n - 2) (n>=2)
畫個家族樹圖譜就會很清楚了,有空補上
引數的區別揭示了不同「月齡」的兔子,但未必是不同的兔子,時間是同一參照標準,比如n
運算法則相同不用多說了,剩下為什麼是相加的邏輯,是子樹所有葉子總和即母樹所有葉子數量
時間標準是相同的,對於母樹( con(n) )第三個月,對其最小子樹( con(n-2) )而言,即第一月,產出量只為1
public class test
return 1;
}public static void main(string args)
}
能這樣遞迴是這些兔子的生產規律都是一致的
剛出生的子兔和剛出生的父兔的家族樹是相似的
而第二個月的父兔撤掉他第三個月新生子兔那乙個分支後家族樹與前兩者也是相似的,因此:
三者都可以用同一計算種群數量計算法則
con(n) = con(n - 1) + con(n - 2) (n>=2)
畫個家族樹圖譜就會很清楚了,有空補上
引數的區別揭示了不同「月齡」的兔子,但未必是不同的兔子,時間是同一參照標準,比如n
運算法則相同不用多說了,剩下為什麼是相加的邏輯,是子樹所有葉子總和即母樹所有葉子數量
時間標準是相同的,對於母樹( con(n) )第三個月,對其最小子樹( con(n-2) )而言,即第一月,產出量只為1
這是十個月之後的兔子總數
package com.string.to;
public class tuzi //繼續迴圈
system.out.println(n); }}
下面是我自己寫的:
package com.string.to;
public class myrabbit
public static int sum(int n)
return 1;}}
兔子繁殖問題
問題 有一對小兔子,從出生後第3個月起每個月都生一對兔子。小兔子長到第3個月後每個月又生一對兔子。按此規律,假設沒有兔子死亡,第乙個月有一對剛出生的小兔子,問第n個月有多少對兔子?分析 這個月的兔子只有兩個 乙個 是上個月的老兔子活到了這個月,另乙個 是這個月剛出生的兔子,而這個月剛出生的兔子,個數...
經典演算法 兔子繁殖問題
有一種動物,它出生後兩天後就開始以每天乙隻得速度繁殖,假設有一天,有乙隻這樣的動物 該動物剛出生,從第三天開始繁殖後代 到第11天,共有多少只?有乙個非常明智的思考,思考過程如下 我們思考第n天的兔子是如何來的,首先第n 1天的兔子都會存活到第n天,並且不會繁殖 第n 2天的兔子都會在第n天繁殖,所...
(遞推1)兔子繁殖問題
有一對小兔子,小兔子過z個月長大,一對大兔子x個月生y對小兔子,求n個月後的兔子總對數。當xyz都是1的時候,f n f n 1 f n 2 問題一 有一對小兔子,小兔子過5個月長大,一對大兔子3個月生4對小兔子,求n個月後的兔子總對數。f n 表示n個月後的兔子總數 f n n那個月原有的兔子 n...