跳至正文
View Categories

< 1 min read

母牛的问题 #

  1. 母牛的问题介绍
  2. 母牛的问题分析
  3. 母牛的问题的实现

收获 #

学完本节内容,可以更深刻了解递推思想的使用。

母牛的问题介绍 #

问题描述:
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第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. 习题1:使用顺推法,画出母牛问题的推导过程
  2. 习题2:假如每头小母牛在第5年才开始生产小牛,求第n年总共的母牛数量