(递推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向文件中插入数据_如何把数据写入顺序文
- 下一篇: 加强计算机网络应用,如何加强计算机网络管