组合数学第二讲

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

3
n6
n5 6
5 , n6 7
n6 7
a6
/7
5 7
5
/
7
0
5
/
7

a6
5
所以和 m 4000 对应地序数列为 (a6 , a5, a4 , a3, a2, a1) (5,3,1, 2, 2, 0) 。
n 个元素的全排列和序数 (an1 , an2 ,L , a2 , a1) 的一一对应关系 不妨将 n 个元素分别记为 1,2,L , n ,则排列和 (an1, an2,L , a2 , a1) 的对应规则如下: 序列中的第一个数 an1表示排列中元素 n 的右(或左)端比 n 小的元素的个数,这样就
解: 6! m 4000 7! 令 n1 m 4000 a6 6! a5 5! a4 4! a3 3! a2 2! a1
n1 2
n1Байду номын сангаас2
a1
4000 2
0
2000 0 , a1
0
n2
n1 2
2000 ,
n2 3
n2 3
a2
/3
2000 3
2
/
3
666
2
能将元素 n 在排列中的位置确定下来,接着取第一个数 an2 ,它表示排列中元素 n 1的右(或 左)端比 n 1小的元素的个数,这样就能将元素 n 1在排列中的位置确定下来。依次类推, ai 它表示排列中元素 i 1 的右(或左)端比 i 1小的元素的个数,这样就能将元素 i 1 在排 列中的位置确定下来。
/
3

a2
2
n3
n2 3
666 ,
n3 4
n3 4
a3
/4
666 4
2
/
4
166 2 / 4 , a3
2
n4
n3 3
166 ,
n4 5
n4 5
a4
/5
166 5
1
/
5
33
1
/
5

a4
1
n5
n4 5
33 ,
n5 6
n5 6
a5
/6
33 6
3
/
6
5 3 / 6 , a5
直到 n n 1L 2 1结束,即直到不存在 p j1 p j 为止。
3. 换位法
ssss 换位法是一种比较直观的排序生成法。例如,以 1 2 3 4 为初始排列,箭头所指一侧,
ssss 相邻的数若比它小时,则称该数处在活动状态, 1 2 3 4 中的 2,3,4 都处在活动状态。
一般地,从一个排列 p1 p2 p3 L pn1 pn 到下一个排列的生成算法步骤: S1. 若 p1 p2 p3 L pn1 pn 没有数处于活动状态则结束。 S2. 将处于活动状态的各数中值最大者设为 m ,则 m 和它箭头所指一侧相邻的数互换位 置,而且比 m 大的所有数的箭头改变方向,即 改为 , 改为 。转 S。
第一个排列 1,2,L , n 对应的序列 (an1 , an2,L , a2, a1) (0, 0,L , 0, 0)
例 1.11 以四个元素1,2,3,4的排列为例,求其第17个和第 21个排列。
解:四个元素1,2,3,4 的第一个排列为1 2 3 4,对应序列(0,0,0,0)。 和m 17 116 对应的序列为(a3,a2,a1) ,a1 0 ,a2 2 ,a3 2 。
(n 1)! (n 2) (n 2)! (n 2)!
n1
代入上式可得: n! k k !1 k 1
n!1 (n 1) (n 1)! (n 2) (n 2)!L 2 2!11!
结论:0 到 n!1之间的任何整数 m 可以唯一地表示为: m an1 (n 1)! an2 (n 2)!L a2 2! a1 1!
S1. 求满足关系式 p j1 p j 的 j 的最大值,设为 i ,即 i max{ j | p j1 p j}。 S2. 求满足关系式 pi1 pk 的 k 的最大值,设为 h ,即 h max{k | pi1 pk } 。 S3. 排列 p1 p2 p3 L pn1 pn 中 pi1 与 ph 互换得 p1 p2 p3 L pn1 pn 。 S4. 令 p1 p2 L pi1 pi pi1L pn 中 的 pi pi1L pn 的 顺 序 逆 转 便 得 到 下 一 个 排 列 p1 p2 L pi1 pn L pi1 pi 。

n2
n1 2
an1
(n
1)!/
2
an2
(n 2)!/
2 L
a2 , n2 除以 3,余数为 r2 ,则 a2 r2 。
一般地,令,n1
m
,ni
ni1 i

i
12, 3L
,
n 1),ni
除以 i 1,余数为 ri ,则 ai
ri
,0
ai
i

i 1, 2, 3L , n 1,。
例1.10 求和 m 4000 对应的序数列。
3
4
2
因此,四个元素1,2,3,4 的第17 个排列为3 4 1 2。 和m 211 20 对应的序列为(a3,a2,a1) (3,1,0) ,a1 0 ,a2 1,a3 3 。因此,四个
元素1,2,3,4 的第21 个排列为4 1 3 2。
2. 字典序法
不妨将 n 个元素分别记为 1,2,L , n ,第一个排列为 1 2 L n 。 一般地,从一个排列 p1 p2 p3 L pn1 pn 到下一个排列的生成算法:
组合数学 第二讲 排列算法和组合意义
排列的生成算法
在实际工作中,需要将所有可能的排列一一罗列出 来加以分析,如何排列出来,需要有排列的生成算法。 下面介绍几种排列的生成算法:
1. 序数法 2. 字典序法 3. 换位法
原理:
1.序数法
n! n (n 1)! [(n 1) 1](n 1)! (n 1) (n 1)! (n 1)!
可以证明 0 到 n!1 之间的 n!个整数和序数 (an1 an2 L a2 a1) 一一对应。
从 m 求序数 (an1 an2 L a2 a1) 的方法
m an1 (n 1 )!an 2 n ( 2L) ! a 2 a21! 1 ! 令 n1 m 除以 2,余数为 r1 ,则 a1 r1
例 1.12 以四个元素 1,2,3,4 的排列为例,求 p1 p2 p3 p4 3421 的下一个排列。
解:S1. i max{ j | p j1 p j} 2 S2. h max{k | pi1 pk } 2 S3. p1 和p2 互换得 4321 S4. 将 4321 中的 321 逆转得 4123 就是所求。 以1, 2, L , n 的排序利用字典排序生成法,可从1, 2, L , n 开始,
相关文档
最新文档