组合数学专项练习笔记

集合的划分

设S是一个具有n个元素的集合, S a 1 a 2 a n ,现将S划分成k个满足下列条件的子集合$S_1,S_2,……,S_k} ,且满足:

  • S i
  • 所有的划分的交集为空: | S i S j = | , 1 i , j k , i j
  • 并集为该集合本身: S 1 S 2 . . . S k = S

则称 S 1 S 2 S k 是集合S的一个划分。

排列与组合

【例】马路上有编号1,2,3…10的十盏路灯,为节约用电而又不影响照明,可以把其中3盏灯关掉,但不可以同时关掉相邻的两盏,在两端的灯都不能关掉的情况下,有()种不同的关灯方法。

  • 采用插隔板法,即8灯关3,余5灯亮,5灯之间6个空,插入3盏不亮灯
  • 答案:C(6,3)

【例】村长带着 4 对父子参加爸爸去哪儿第三季第二站某村庄的拍摄。村里为了保护小孩不被拐走有个前年的规矩,那就是吃饭的时候小孩左右只能是其他小孩或者自己的父母。那么 4 对父子在圆桌上共有_种坐法。 (旋转一下,每个人面对的方向变更后算是一种新的坐法)

  • 思路:先选座位,在进行排列;
  • 四个孩子一起坐:选4个连起来的座位,共有8种,孩子的排列是A(4,4),只有两个父亲(且是确定的)可以随便坐A(2,2),故8*A(4,4)*A(2,2)
  • 两个孩子一起坐:选四个座位,且是相对的,共有4种,孩子的全排列A(4,4),父亲的座位确定,故4*A(4,4)
  • 一共有8*A(4,4)*A(2,2)+4*A(4,4)=480

【例】从数字集合{1,2,3,4,… ,20}中选出3个数字的子集,如果不允许两个相连的数字出现在同一集合中,那么能够形成多少个这种子集?

  • “不邻问题”插空法,即在解决对于某几个元素要求不相邻的问题时,先将其它元素排好,再将指定的不相邻的元素插入已排好元素的间隙或两端位置,从而将问题解决的策略。
  • C(18,1)=816

错排公式

【例】五个球从盒子里拿出来,打乱顺序放回去,均不在原位的排列数是多少()

  • D(n) = (n-1) * ( D(n-1) + D(n-2) ),n>=3,D(1) = 0 , D(2) = 1
  • A的位置有4种选择(除了A之外的4个字母)
  • (1)B的位置被A占了:CDE三个位置因为要避免重复,所以只能有2种排列方式
  • (2)B的位置没有被A占:则B的位置有3种选择,C的位置有3种选择(因为A在这3个里面,A无论在CDE的哪个位置上,都没有问题,只要A的位置定了,另外两个的位置肯定也定了,因为它们只能交换位置),所以是 3*3种
  • 最后总共是 4*( 2 + 3*3)

卡特兰数

【定理】n个“1”和n个“0”组成的2n位的二进制数,要求从左到右扫描,“1”的累计数不小于“0”的累计数,这样的二进制数的个数为著名的Calatan数 C ( 2 n , n ) n + 1 ,(n>=0)
【证明】令An为n个“1”和n个“0”组成的符合二进制数的个数,n个“1”和n个“0”组成的二进制数可以看作是一种类型(1型)为n个元素和另一种类型(0型)的n个元素的两种不同元素的排列,这样的排列个数位C(2n,n) = (2n)!/(n!n!),从C(2n,n)中减去不符合要求的个数即为所求的An,
考虑n个”1”和n个”0”组成的不符合要求的二进制数,不符合要求的数应为:从左到右扫描时,必然存在一个最小的k使得在这k位上首先出现”0”的累计数多于”1”的累计数,特别得,k是一个奇数,而在k之前的k-1位数中,有相等个数的”0”和”1”,而且这第k位上是”0”,现在把这前k位中每一位上的数进行交换,”1”换成”0”,”0”换成”1”,并且保持剩下的数不变,结果这样的二进制数是一个有n+1个”1”和n-1个”0”的二进制数,即一个不合要求的二进制数对应一个由n+1个”1”和n-1个”0”组成的一个排列,这个过程是可逆的:任何一个由n+1个”1”和n-1个”0”组成的2n位数,由于”1”的个数比”0”的个数多2个,2n是偶数,因此必在某个奇位数上出现”1”的累计数超过”0”的累计数,同样对他们进行交换,并使其余的不动,使之成为由n个”1”和n个”0”组成的2n位数,这时”0”的累计个数多于”1”的累计个数,是一个不符合要求的二进制数,从而不符合要求的二进制数与n+1个”1”和n-1”0”组成的排列一一对应,这样的排列个数为C(2n,n+1) = (2n)!/((n+1)!(n-1)!) 因此有An = C(2n,n)-C(2n,n+1)

杨氏矩阵

杨氏矩阵又叫杨氏图表,它是这样一个矩阵,满足条件:
(1)如果格子(i,j)没有元素,则它右边和上边的相邻格子也一定没有元素。
(2)如果格子(i,j)有元素 a i j ,则它右边和上边的相邻格子要么没有元素,要么有元素且比 a i j 大。

1 ~ n所组成杨氏矩阵的个数可以通过下面的递推式得到:
F(1)=1;F(2)=2;
F(n)=F(n-1)+(n-1)F(n-2) ,n>2

钩子公式

对于给定形状,不同的杨氏矩阵的个数为:n!除以每个格子的钩子长度加1的积。其中钩子长度定义为该格子右边的格子数和它上边的格子数之和。

【例】1-16十六个数字分别填入十六格方框内,要求从左至右的数字是从小到大排列,从上至下的数字也是从小到大排列,问:有多少种排列方式。

扫描二维码关注公众号,回复: 4147273 查看本文章
  • 利用杨氏矩阵的钩子公式
  • 答案:16! / (4 x 3 x 2 x 1 x 5 x 4 x 3 x 2 x 6 x 5 x 4 x 3 x 7 x 6 x 5 x 4) = 24024

猜你喜欢

转载自blog.csdn.net/weixin_38493025/article/details/80791907