给出递推式: f ( n ) = ( n − 1 ) [ f ( n − 1 ) + f ( n − 2 ) ] f(n)=(n-1)\big[f(n-1) + f(n-2)\big] f(n)=(n−1)[f(n−1)+f(n−2)]
证明:
用信装错信封的问题来解释
设
A
,
B
,
C
.
.
.
A,B,C...
A,B,C...为
n
n
n个信封,
a
,
b
,
c
.
.
.
a,b,c...
a,b,c...为
n
n
n封信,把每封信都装错的方案数记为
f
(
n
)
f(n)
f(n)
假设现在已经将信
a
a
a错装进信封
B
B
B,那么会出现下面两种情况
(1)将信
b
b
b放进信封
A
A
A中。在这种情况下,剩下的部分每种都装错与
a
,
b
,
A
,
B
a,b,A,B
a,b,A,B无关,所以剩下的子问题可以看做将
n
−
2
n-2
n−2封信错装进
n
−
2
n-2
n−2个信封中,也就是
f
(
n
−
2
)
f(n-2)
f(n−2)
(2)将信
b
b
b放进除
A
,
B
A,B
A,B之外的
n
−
2
n-2
n−2个信封中。这时的装信工作实际是把除
a
a
a之外的
n
−
1
n-1
n−1封信装入除
B
B
B以外的
n
−
1
n-1
n−1个信封中,即这时的方案数为
f
(
n
−
1
)
f(n-1)
f(n−1)
总之在
a
a
a装入
B
B
B的错误之下,总共有
f
(
n
−
1
)
+
f
(
n
−
2
)
f(n-1)+f(n-2)
f(n−1)+f(n−2)种错装法,
a
a
a装入
C
,
D
.
.
.
C,D...
C,D...的
n
−
2
n-2
n−2种错误之下同理,所以
f
(
n
)
=
(
n
−
1
)
[
f
(
n
−
1
)
+
f
(
n
−
2
)
]
f(n)=(n-1)\big[f(n-1) + f(n-2)\big]
f(n)=(n−1)[f(n−1)+f(n−2)]