(递推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那個月新生的兔子
n那個月原有的兔子是:f(n-1)
n那個月新生的兔子是:n-x那個月成熟的兔子,也就是n-x-z那個月所有的兔子,因為n-x-z那個月所有的兔子在n-x那個月的時候都成熟了
故f(n)= f(n-1)+ f(n-x-z) * (y/x);這里必須是* (y/x),這是每個月生產的。(那個月成熟的兔子在一個月里生的小兔子的個數)
這個表達式也適合于一個月生一對的情況;
一個月的情況可以看成成熟+不成熟,和原來的+新生的。而多個月的情況看成后一種比較好,因為看成前一種會超級麻煩。
到本題,也就是f(n)= f(n-1)+ f(n-8)*(4/3);
問題二:
有一對小兔子,小兔子過5個月長大,一對大兔子3個月生4對小兔子,求n個月后的大兔子總對數。
用f(n)表示大兔子,那么
f(n)= 上個月的大兔子數+這個月新長成的大兔子數
上個月的大兔子數是:f(n-1)
這個月新長成的大兔子數是:因為兔子需要5個月長大,所以應該是n-5個月那個月的新出生的兔子,
n-5個月那個月的新出生的兔子是n-5-3那個月的所有大兔子數,因為大兔子經過三個月才能有小兔子,
故f(n)=f(n-1)+f(n-5-3)*(4/3);
總結
以上是生活随笔為你收集整理的(递推1)兔子繁殖问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c向文件中插入数据_如何把数据写入顺序文
- 下一篇: 1主5从mysql数据库_MySQL主从