假设初始有一对牛,每个月生出一对小牛,新生的小牛过三个月成长为大牛,并开始繁殖,在假设所有牛不死亡的情况下,问第
n
个月有多少对牛? (假设第
n
个月有
a[n]
对牛,那么
a[1]=2,a[2]=3,a[3]=4,a[4]=5,a[5]=7⋯
依次类推 )
因为新生的小牛经过三个月可以成为大牛并开始繁殖,所以如果假设第
n
个月出生
b[n]
对小牛,那么其等于上个月的大牛对数
b[n−1]
和 第
n−4
个月(经过三个月)出生的小牛对数
b[n−4]
,所以有
b[n]={1b[n−1]+b[n−4]n=1,2,3,4n>4(3)
再加上有一对初始的大牛,所以第
n
个月的牛对数为
a[n]=1+∑i=1nb[i](4)
所以求出
b[n]
,即可得出
a[n]
,求
b[n]
有两种方法:
方法一:
由递推关系可知
⎛⎝⎜⎜⎜⎜1100001000011000⎞⎠⎟⎟⎟⎟⎛⎝⎜⎜⎜⎜b[n−1]b[n−2]b[n−3]b[n−4]⎞⎠⎟⎟⎟⎟=⎛⎝⎜⎜⎜⎜b[n]b[n−1]b[n−2]b[n−3]⎞⎠⎟⎟⎟⎟
令
M=⎛⎝⎜⎜⎜⎜1100001000011000⎞⎠⎟⎟⎟⎟
由于
det(M)=−1≠0
,所以
M
可以对角化为
M=VDV−1
,所以有
VDnV−1(b[4],b[3],b[2],b[1])T=(b[n],b[n−1],b[n−2],b[n−3])
方法二:
假设
q
是方程
x4=x3+1
的解,则显然有
qn−4⋅q4=qn−4⋅q3+qn−4
,所以递推关系
b[n]=b[n−1]+b[n−4]
的解可以是
b[n]=qn
且
(n>4)
,所以可以直接推出
a[n]={n+1qn−1−q5+4q−4q−1+14≥n≥1n>4
其中
q
为
x4−x3−1=0
的解。
其中的一个
q
解为
q=−−3√,⎛⎝⎜⎜⎜⎜283√2,332−12⎞⎠⎟⎟⎟⎟162,12,⎛⎝⎜⎜⎜⎜283√2,332−12⎞⎠⎟⎟⎟⎟23+3,⎛⎝⎜⎜⎜⎜283√2,332−12⎞⎠⎟⎟⎟⎟13−16⎷−⎛⎝⎜⎜283√2,332−12⎞⎠⎟⎟13+43,⎛⎝⎜⎜⎜⎜283√2,332−12⎞⎠⎟⎟⎟⎟13+12⎷2−12,⎛⎝⎜⎜283√2,332−12⎞⎠⎟⎟23+3,⎛⎝⎜⎜283√2,332−12⎞⎠⎟⎟13−16⎷4,3√,⎛⎝⎜⎜283√2,332−12⎞⎠⎟⎟16+14