母牛的问题 #
- 母牛的问题介绍
- 母牛的问题分析
- 母牛的问题的实现
收获 #
学完本节内容,可以更深刻了解递推思想的使用。
母牛的问题介绍 #
问题描述:
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
母牛的问题分析 #
将问题进行拆解,记第n年的牛的数目为f(n):
(1)前4年,只有母牛进行生产,那么可以得到以下表达式:
if n<=4: f(n)=n
(2)从第5年起,母牛和子牛都会进行生产,那么可以通过递推关系得到以下表达式:
if n>4: f(n)=f(n-1)+f(n-3)
母牛的问题的实现 #
python实现代码如下:
n=int(input('请输入年份n')) def cow_num(n): if n<=4: return n if n>4: return cow_num(n-1)+cow_num(n-3) print(cow_num(9))
小结 #
结合母牛的问题的应用,进一步理解递推算法的思想
掌握母牛的问题的代码实现
习题 #
- 习题1:使用顺推法,画出母牛问题的推导过程
- 习题2:假如每头小母牛在第5年才开始生产小牛,求第n年总共的母牛数量