假设初始有一对牛,每个月生出一对小牛,新生的小牛过三个月成长为大牛,并开始繁殖,在假设所有牛不死亡的情况下,问第 n n n 个月有多少对牛? (假设第 n n n 个月有 a [ n ] a[n] a[n] 对牛,那么 a [ 1 ] = 2 , a [ 2 ] = 3 , a [ 3 ] = 4 , a [ 4 ] = 5 , a [ 5 ] = ⋯ a[1] = 2, a[2] = 3, a[3] = 4, a[4] = 5, a[5] = \cdots a[1]=2,a[2]=3,a[3]=4,a[4]=5,a[5]=⋯依次类推 )
因为新生的小牛经过三个月可以成为大牛并开始繁殖,所以如果假设第
n
n
n 个月出生
b
[
n
]
b[n]
b[n] 对小牛,那么其等于上个月的大牛对数
b
[
n
−
1
]
b[n-1]
b[n−1] 和 第
n
−
4
n-4
n−4 个月(经过三个月)出生的小牛对数
b
[
n
−
4
]
b[n-4]
b[n−4],所以有
b
[
n
]
=
{
1
n
=
1
,
2
,
3
b
[
n
−
1
]
+
b
[
n
−
4
]
n
≥
4
b[n] = \begin{cases} 1 & n = 1,2,3\\ b[n-1]+b[n-4] & n\ge4 \end{cases}
b[n]={1b[n−1]+b[n−4]n=1,2,3n≥4
再加上有一对初始的大牛,所以第 n n n 个月的牛对数为 a [ n ] = 1 + ∑ i = 1 n b [ i ] a[n]=1+\sum_{i=1}^n b[i] a[n]=1+i=1∑nb[i]
所以求出 b [ n ] b[n] b[n],即可得出 a [ n ] a[n] a[n],求 b [ n ] b[n] b[n] 有两种方法:
方法一:
参考Linear recurrence relations with constant coefficients 由递推关系可知
(
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
)
(
b
[
n
−
1
]
b
[
n
−
2
]
b
[
n
−
3
]
b
[
n
−
4
]
)
=
(
b
[
n
]
b
[
n
−
1
]
b
[
n
−
2
]
b
[
n
−
3
]
)
\begin{pmatrix} 1 & 0 & 0 & 1 \\ 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{pmatrix} \begin{pmatrix} b[n-1]\\ b[n-2]\\ b[n-3]\\ b[n-4] \end{pmatrix} = \begin{pmatrix} b[n]\\ b[n-1]\\ b[n-2]\\ b[n-3] \end{pmatrix}
⎝⎜⎜⎛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 = ( 1 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 ) M = \begin{pmatrix} 1 & 0 & 0 & 1 \\ 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{pmatrix} M=⎝⎜⎜⎛1100001000011000⎠⎟⎟⎞
由于 d e t ( M ) = − 1 ≠ 0 det(M) = -1 \not= 0 det(M)=−1=0,所以 M M M 可以对角化为 M = V D V − 1 M = VDV^{-1} M=VDV−1,所以有 V D n V − 1 ( b [ 4 ] , b [ 3 ] , b [ 2 ] , b [ 1 ] ) T = ( b [ n ] , b [ n − 1 ] , b [ n − 2 ] , b [ n − 3 ] ) VD^{n}V^{-1}(b[4],b[3],b[2],b[1])^T=(b[n],b[n-1],b[n-2],b[n-3]) VDnV−1(b[4],b[3],b[2],b[1])T=(b[n],b[n−1],b[n−2],b[n−3])
方法二:
参考Solving homogeneous linear recurrence relations with constant coefficients,假设
q
1
.
q
2
,
q
3
,
q
4
q_1.q_2,q_3,q_4
q1.q2,q3,q4 是方程
x
4
=
x
3
+
1
x^4=x^3+1
x4=x3+1 的四个解,则显然有
q
n
−
4
⋅
q
4
=
q
n
−
4
⋅
q
3
+
q
n
−
4
q^{n-4}\cdot q^4 = q^{n-4} \cdot q^3 + q^{n-4}
qn−4⋅q4=qn−4⋅q3+qn−4,所以递推关系
b
[
n
]
=
b
[
n
−
1
]
+
b
[
n
−
4
]
b[n] = b[n-1]+b[n-4]
b[n]=b[n−1]+b[n−4] 的解是
b
[
n
]
=
k
1
q
1
n
+
k
2
q
2
n
+
k
3
q
3
n
+
k
4
q
4
n
b[n]=k_1q_1^n+k_2q_2^n+k_3q_3^n+k_4q_4^n
b[n]=k1q1n+k2q2n+k3q3n+k4q4n ,将初始解
{
b
[
1
]
=
1
b
[
2
]
=
1
b
[
3
]
=
1
b
[
4
]
=
1
\begin{cases} b[1]=1 & \\ b[2]=1 & \\ b[3]=1 & \\ b[4]=1 & \\ \end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧b[1]=1b[2]=1b[3]=1b[4]=1
代入其中可解出系数
k
1
,
k
2
,
k
3
,
k
4
k_1,k_2,k_3,k_4
k1,k2,k3,k4
所以可以直接推出
a
[
n
]
=
k
1
q
1
n
+
1
−
q
1
q
1
−
1
+
k
2
q
2
n
+
1
−
q
2
q
2
−
1
+
k
1
q
3
n
+
1
−
q
3
q
3
−
1
+
k
1
q
4
n
+
1
−
q
4
q
4
−
1
+
1
a[n]=k_1\frac{q_1^{n+1}-q_1}{q_1-1}+k_2\frac{q_2^{n+1}-q_2}{q_2-1}+k_1\frac{q_3^{n+1}-q_3}{q_3-1}+k_1\frac{q_4^{n+1}-q_4}{q_4-1}+1
a[n]=k1q1−1q1n+1−q1+k2q2−1q2n+1−q2+k1q3−1q3n+1−q3+k1q4−1q4n+1−q4+1
其中
q
q
q 为
x
4
−
x
3
−
1
=
0
x^4-x^3-1=0
x4−x3−1=0 的解。
其中的一个
q
q
q 解为
q
=
−
−
3
(
283
2
3
3
2
−
1
2
)
1
6
2
12
(
283
2
3
3
2
−
1
2
)
2
3
+
3
(
283
2
3
3
2
−
1
2
)
1
3
−
16
−
(
283
2
3
3
2
−
1
2
)
1
3
+
4
3
(
283
2
3
3
2
−
1
2
)
1
3
+
1
2
2
−
12
(
283
2
3
3
2
−
1
2
)
2
3
+
3
(
283
2
3
3
2
−
1
2
)
1
3
−
16
4
3
(
283
2
3
3
2
−
1
2
)
1
6
+
1
4
q=-{{\sqrt{-{{\sqrt{3}\,\left({{\sqrt{283}}\over{2\,3^{{{3 }\over{2}}}}}-{{1}\over{2}}\right)^{{{1}\over{6}}}}\over{2\,\sqrt{12 \,\left({{\sqrt{283}}\over{2\,3^{{{3}\over{2}}}}}-{{1}\over{2}} \right)^{{{2}\over{3}}}+3\,\left({{\sqrt{283}}\over{2\,3^{{{3}\over{ 2}}}}}-{{1}\over{2}}\right)^{{{1}\over{3}}}-16}}}-\left({{\sqrt{283} }\over{2\,3^{{{3}\over{2}}}}}-{{1}\over{2}}\right)^{{{1}\over{3}}}+ {{4}\over{3\,\left({{\sqrt{283}}\over{2\,3^{{{3}\over{2}}}}}-{{1 }\over{2}}\right)^{{{1}\over{3}}}}}+{{1}\over{2}}}}\over{2}}-{{ \sqrt{12\,\left({{\sqrt{283}}\over{2\,3^{{{3}\over{2}}}}}-{{1}\over{ 2}}\right)^{{{2}\over{3}}}+3\,\left({{\sqrt{283}}\over{2\,3^{{{3 }\over{2}}}}}-{{1}\over{2}}\right)^{{{1}\over{3}}}-16}}\over{4\, \sqrt{3}\,\left({{\sqrt{283}}\over{2\,3^{{{3}\over{2}}}}}-{{1}\over{ 2}}\right)^{{{1}\over{6}}}}}+{{1}\over{4}}
q=−2−212(2323283−21)32+3(2323283−21)31−163(2323283−21)61−(2323283−21)31+3(2323283−21)314+21−43(2323283−21)6112(2323283−21)32+3(2323283−21)31−16+41