第八章组合计数方法 北京大学计算机系离散数学讲义

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设 H*(n) = P1n2 + P2n, 代入 解得 P1 = P2 = 7/2,
通解为
H(n) = c1n +
7 2
n(n+1) = c +
7 2
n(n+1)
2020/6/16
特解的求法(续)
f(n)为指数函数 n,若不是特征根,则特解为 H*(n) = Pn 例 10 通信编码问题
an = 6an-1 + 8n-1, a1=7 a*n = P 8n-1 , 代入得 P = 4 通解 an=c6n + 48n-1 代入初值得 an=(6n+8n)/2
T(n) = 2 T(n-1)+1 T*(n) = P
P = 2 P + 1 , P = -1 T(n) = c 2n–1, 代入初值 T(1)=1, 得 c=1, 解为 T(n) = 2n –1.
例 9 H(n)- H(n-1) = 7n
设特解为 Pn 不行,应设为 n2 高次项, 因为特征根是 1.
H(n) a1H(n 1) ... ak H(n k) f (n), n k,ak 0, f (n) 0.
定理 6 设 H (n) 是对应齐次方程的通解,H*(n)是一个特解,则
H(n) H(n) H * (n)
是递推方程的通解.
证(1)H(n)是解,代入验证.
(2)设 h(n)是解,证明 h(n)为一个齐次解与特解 H*(n)之和.
12P1 3 - 34P1 12P2 0 29P1 - 17P2 12P3 0
1
17
115
P1 4 , P2 24 , P3 288 ,
an*
1 4
n2
17 24
n
115 288
通解为
2020/6/16
an
c1 (2)n
c2 (3)n
1 4
n2
17 n 24
115 288
实例
例 8 Hanoi 塔
h(n) a1h(n 1) ... akh(n k) f (n) )H * (n) a1H * (n 1) ... ak H * (n k) f (n)
2020/6/16
[h(n) H * (n)] a1[h(n 1) H * (n 1)] ...
ak[h(n k) H * (n k)] 0 h(n)-H*(n)是齐次解,即 h(n)是一个齐次解与 H*(n)之和.
2020/6/16
递推方程的实例(续)
例 3 哪种排序算法在最坏情况下复杂度比较低? 插入排序、归并排序 插入排序 W(n) = W(n 1) + n 1 W(1) = 0 解得 W(n) = O(n2). 归并排序,不妨设 n = 2k. W(n) = 2W(n/2) + n-1 W(1) = 0 解得 W(n) = O(nlogn)
c1'c2'... ck ' b0
c1
'
q1
c2 ' q2
...
ck 'qk ...
b1
c1'q1k1 c2'q2k1 ... ck 'qk k1 bk1
系数行列式 (qi q j ) 0 当 qi qj 时
1i jk
方程组有唯一解
2020/6/16
求解实例
例4
Fibonnaci 数列,特征根为
2020/6/16
其中 c1,c2,…,ck 是任意常数.
无重根下通解的结构
通解定义: 若 对 递 推 方 程 的 每 个 解 h(n) 都 存 在 一 组 常 数 c1’,c2’,…ck’ 使 得 h(n)=c1’q1n+c2’q2n+…+ck’qkn 成 立,则称 c1q1n+c2q2n+…+ckqkn 为通解.
定理 2 h1(n)和 h2(n)是递推方程的解, c1,c2 为任意常数, 则 c1h1(n)+c2h2(n)是递推方程的解.
证明 将 c1h1(n)+c2h2(n)代入递推方程左边, 化简后等于 0
பைடு நூலகம்
推论:若 q1,q2,…,qk 是递推方程的特征根, 则 c1q1n+c2q2n+…+ckqkn 是递推方程的解,
H(0) = 1, H(1) = 0, H(2) = 1, H(3) = 2 特征方程 x4 + x3 - 3x2 - 5x - 2 = 0 , 特征根-1,-1,-1,2, 通解为 H (n) (c1 c2n c3n2 )(1)n c4 2n
c1 c4 1 c1 c2 c3 2c4 0 c1 2c2 4c3 4c4 1 c1 3c2 9c3 8c4 2
解得 解为
2020/6/16
7
1
2
c1 9 , c2 3 , c3 0, c4 9
H(n) 7 (1)n 1 n(1)n 2 2n
9
3
9
常系数线性非齐次递推方程求解
• 递推方程的标准型 • 通解结构 • 特解的求法
多项式函数 指数函数 组合形式
2020/6/16
递推方程的标准型及通解
i 1
证明要点:(阅读教材)
(1)
对于特征根
qi,重数为
ei, qin ,
nq
n i
,
...
, nei 1qin
是递
推方程的解 (2) 证明以上的解线性无关 2020/6/16 (3) 证明 H(n)是通解
求解实例
例 6 H(n) + H(n-1) - 3H(n-2) - 5H(n-3) - 2H(n-4) = 0
问题:两个解线性相关.
2020/6/16
有重根解结构的引理
引理 1 设 f0 ( x) x n a1 x n1 ... ak1 x nk1ak x nk
令 fi ( x) xfi1'( x), i Z
则 fi ( x) ni x n a1(n 1)i x n1 ... ak (n k )i x nk 证: 归纳法.
有重根解结构的引理(续)
引理 2 设 fi ( x) ni x n a1(n 1)i x n1 ... ak (n k )i x nk ,
q 是 fi(x)的 e 重根,则 q 是 fi+1(x)的 e1 重根.

fi (x) (x q)e P(x) fi1( x) xfi '( x) e( x q)e1 P( x) ( x q)e P'( x) ( x q)e1[eP( x) ( x q)P'( x)]
2020/6/16
常系数线性齐次递推方程求解
常系数线性齐次递推方程的定义
H(n) a1H(n 1) a2H(n 2) ... ak H(n k) 0
H
(0)
b0
,
H
(1)
b1,
H
(2)
b2
,
...
,
H
(k
1)
bk
1
其中 a1,a2,…,ak 为常数,ak 0 称为 k 阶常系数线性齐次递推方程 b0,b1,…,bk-1 为 k 个初值 实例:Fibonacci 数列的递推方程
第八章 组合计数方法
递推方程的公式解法 递推方程的其他解法 生成函数的定义及其性质 生成函数的应用 高级计数
2020/6/16
递推方程的实例
例 1 一个编码系统用 8 进制数字对信息编码,一个码是有效的当且 仅当含有偶数个 7, 求 n 位长的有效码字有多少个?
解 设所求有效码字为 an 个 分类处理、分步处理
1
5 1 ,
5

2
2
通解为
fn
c1
1
2
5 n
c2
1
2
5 n
c1 c2 1
带入初值
f0 =1, f1=1,

c1
1
2
5
c2
1
2
5
1
2020/6/16
解得
c1
1 1 5 ,
52
1 1 5 c2 5 2
fn
1 1 5 2
5
n1
1 1
5
n1
5 2
证: qn 是递推方程的解 qn- a1qn-1 - a2qn-2 - … - akqn-k = 0 qn-k(qk - a1qk-1 - a2qk-2 - … - ak) = 0 qk - a1qk-1 - a2qk-2 - … - ak = 0 q 是它的特征根
2020/6/16
解的线性性质
c1 = c2 = … = ce = 0
2020/6/16
有重根下的通解结构
定理 5 设 q1, q2, … , qt 是递推方程的不相等的特征根, 且 qi 的重数为 ei,令
Hi (n) (ci1 ci2n ... ciei nei 1)qi n
t
那么通解 H (n) Hi (n)
定理 3 设 q1,q2,…,qk 是递推方程不等的特征根, 则 H(n)= c1q1n+c2q2n+…+ckqkn 为通解.
2020/6/16
定理的证明
证: H(n)是解. 设 h(n)是递推方程的任意解, h(0), h(1), …, h(k-1)由初值 b0, b1, … , bk-1 唯一确定.
特解的求法
f(n)为 n 的 t 次多项式,一般 H*(n)也为 n 的 t 次多项式 例 7 an + 5an-1 + 6an-2 = 3n2 设 an* = P1n2 + P2n + P3 , 代入得 P1n2+P2n+P3 +5[P1(n-1)2+P2(n-1)+P3]+6[P1(n-2)2+P2(n-2)+P3]=3n2
(2)由引理 1,fi(x) = nixn-a1(n-1)ixn-1-…-ak(n-k)ixn-k, 代入得 niqn-a1(n-1)iqn-1-…-ak(n-k)iqn-k = 0 niqn 是解,i=0,1,…,e-1.
(3)解线性无关. 设 c1qn + c2nqn + … + cene-1qn = 0
H
(0)
b0
,
H
(1)
b1
,
H
(2)
b2
,
...
,
H
(k
1)
bk 1
特征方程
xk-
a xk-1 1
-

-
ak =
0,
特征方程的根称为递推方程的特征根
实例
递推方程 fn = fn-1 + fn-2 特征方程 x2-x-1 = 0
特征根
2020/6/16
1 5 1 5
,
2
2
递推方程解与特征根的关系
定理 1 q 是非零复数,则 qn 是递推方程的解 q 是它的特征根
2020/6/16
an = 7an-1 + 8n-1 an-1 an = 6an-1 + 8n-1, a1=7 解得 an=(6n+8n)/2
递推方程的实例(续)
例2 Hanoi 塔 问题
T(n) = 2 T(n-1) + 1,T(1) = 1 解得 T(n) = 2n 1 1 秒移 1 个,64 个盘子要多少时间?(5000 亿年) 思考:是否存在更好的解法? Reve 难题:Hanoi 塔变种,柱子个数增加,允许盘子相等.
2020/6/16
特解的求法(续)
若 是 e 重特征根,则特解为 Pnen 例 11 H(n)– 5H(n-1) + 6H(n-2) = 2n,
H*(n) = Pn2n, 代入得
Pn2n– 5P(n-1)2n-1 + 6P(n-2)2n-2 = 2n 解得 P = -2
2020/6/16
常系数线性齐次递推方程的公式解法
• 特征方程、特征根 • 递推方程的解与特征根的关系 • 解的线性性质 • 无重根下通解的结构 • 求解实例 • 有重根下通解结构 • 求解实例
2020/6/16
特征方程与特征根
H(n) a1H(n 1) a2H(n 2) ... ak H(n k) 0
有重根下求解中的问题
例 5 H(n) 4H(n1) + 4H(n2) = 0 H(0) = 0, H(1) = 1 特征方程 x24x+4 = 0 通解 H(n) = c12n + c22n = c2n 代入初值得: c2n 4c2n-1 + 4c2n-2 = 0 c2c + c = 0, c 无解.
2020/6/16
f1( x) xf0'( x) nxn a1(n 1) xn1 ... ak (n k ) xnk
假设 fi(x)为真,则
fi1( x) xfi '( x) x[ni1 x n1 a1(n 1)i1 xn2 ... ak (n k )i1 xnk1 ] ni1 x n a1(n 1)i1 x n1 ... ak (n k )i1 x nk
(x-q)不整除 P(x), q 是 fi+1(x)的 e1 重根.
2020/6/16
有重根下的解
定理 4 若 q 是递推方程的 e 重特征根,则 qn,nqn, …, ne-1qn 是递推方程的线性无关的解
证:(1)归纳证明 q 是 fi(x)的 e-i 重根,i=0,1,…,e-1. i=0, q 是 f0(x)的 e 重根 假设 q 是 fi(x)的 e-i 重根,则根据引理 2, q 是 fi+1(x)的 e-i-1 重根.
相关文档
最新文档