2017.3.7 组合数学学习——四个基本计数原理、排列
加法原理:
互相排斥的情况
划分少量且易处理
如果有p中方法能从一堆中选出一个物体,又有q中方法能从另一堆中选出一个物体,那么从这两堆中选出一个物体有p+q种方法
乘法原理:
对于集合S有p个a,每个a对应着q个b,那么|S|=p*q
使用条件:各任务间没有依赖情况
优先选择约束性最强的选择
除法原理:
条件:划分子集合大小相等
集合的排列:
定理:对于正整数n和r,r<=n
有P(n,r)=n*(n-1)*(n-r+1)=n!/(n-r)!
注:约定0!=1
例:将n个不同的数排序,使其中m个不同的数不能相邻,问方案数
解:①对于没有要求的n-m个数,有p(n-m,n-m)种排法
②对于不能相邻的数,他们只能出现在第①类数的前面、后面和空位上,所以有p(n-m+1,m)种排法
根据乘法原理,ans=p(n-m,n-m)*p(n-m+1,m)
线性排列:
例:从1——9中取7个数构成一个排列,要求5、6不相邻,求方案数
解法一,加法原理:
将答案分为4部分:
1、 取得数没有5和6,s1=p(7,7)
2、取得数有5没有6,s2=7*p(7,6)
3、取得数有6没有5,同2
4、取得数既有5又有6
再分为3种情况
① 若5在第一个,那么6有5种放法,反过来同理 s3=2*5*p(7,5)
② 若5在最后一个,同①
③ 若5在中间,那么5有5种放法,6有4种放法,反过来同理 s4=2*5*4*p(7,5)
ans=s1+s2*2+s3*2+s4
解法二,减法原理:
答案=所有的排列-5、6相邻的排列
1、所有的排列s1=p(9,7)
2、5 6相邻的排列,有6种放法5后面是6,反过来一样 s2=2*6*p(7,5)
ans=s1-s2
循环排列:
定理:n元素集合的循序r排列数目=p(n,r)/r
因为每个线性r排列可以看做r个循环r排列
特别地:n元素的循环排列为(n-1)!
可以把一个元素固定,那么剩下的n-1个元素就是一个线性排列
例1:10个围坐一圆桌,两人不愿意挨着,求座位设置方法
解法一:减法原理
两人挨着:将两人看做一个整体,插8个人的空
ans=所有排列-两人挨着的排列
=9!-2*8!=7*8!
解法二:
设a1、a2不愿意挨着,固定a1,那么a1左边有有8个人可以坐,右边有7个人可做,中间7个人随便坐,所以ans=8*7*7!=7*8!
例2:20个念珠串成一个项链,能做多少种不同的项链
解:项链数目:19!
项链反转过来,念珠排放不改变,所以ans=19!/2
此题与朴素循环排列的不同之处:
A 与 A 是不同的循环排列
B C C B
但是同一种项链,因为前者翻转过来就是后者