【专题】排列组合/鸽巢原理/容斥原理

排列组合

基本公式:

  1. 加法原理
      完成一件事的方法有 n n n类,其中第 i i i类方法包括 a i a_i ai中不同的方法,且这些方法互不重合,则完成这件事总共的方法数为: a 1 + a 2 + a 3 + . . . . . . + a n a_1+a_2+a_3+......+a_n a1+a2+a3+......+an
  2. 乘法原理
      若完成一件事情需要 i i i个步骤,其中第 i i i个步骤有 a i a_i ai种不同的完成方法,且这些步骤互不干扰,则完成这件事总共的方法数为: a 1 ∗ a 2 ∗ a 3 ∗ . . . . . . ∗ a n a_1*a_2*a_3*......*a_n a1a2a3......an
  3. 组合数
       n n n个人中选出 m m m个人的方案数: C n m = n ! m ! ∗ ( n − m ) ! C_{n}^{m}=\frac{n!}{m!*(n-m)!} Cnm=m!(nm)n!
  4. 排列数
       n n n个人中选出 m m m个人站成一列纵队的方案数: P n m = n ! ( n − m ) ! P_{n}^{m}=\frac{n!}{(n-m)!} Pnm=(nm)n!
  5. 圆排列
       n n n个人中选出 m m m个人站成一圈的方案数: P n m m \frac{P_{n}^{m}}{m} mPnm
      理解:每种圆排列对应 m m m种不同的排列
  6. 可重排列
       n n n种元素,每种无限个,取出 m m m个元素排列的方案数: n m n^m nm
      理解:乘法原理,每个位置 n n n种选择
  7. 可重组合
       n n n种元素,每种无限个,取出 m m m个元素的方案数: C n + m − 1 m − 1 C_{n+m-1}^{m-1} Cn+m1m1
      理解:相当于 m m m个物品分给 n n n个人,允许分到 0 0 0个的方案数,用隔板法即可。
  8. 多重集排列
      设 S = { n 1 ∗ a 1 , n 2 ∗ a 2 , . . . . . . n k ∗ a k } S=\{n_1*a_1,n_2*a_2,......n_k*a_k\} S={n1a1,n2a2,......nkak}
      是由 n 1 n_1 n1 a 1 a_1 a1 n 2 n_2 n2 a 2 a_2 a2 . . . . . . ...... ...... n k n_k nk a n a_n an组成的多重集(包含重复元素)。 S S S的排列数个数为: n ! n 1 ! ∗ n 2 ! . . . . . . n k ! \frac{n!}{n_1!*n_2!......n_k!} n1!n2!......nk!n!
      理解:由于同种元素本质相同,所以除以 n i ! n_i! ni!剔除重复。
  9. 多重集组合数(特殊情况)
      定义同上,取出 r r r个元素 r ≤    n i r\leq\;n_i rni组成一个多重集(不考虑顺序),产生的不同多重集的数量为: C k + r − 1 k − 1 C_{k+r-1}^{k-1} Ck+r1k1
      理解:本质是求满足 ∑ i = 1 k x i = r \sum_{i=1}^k x_i=r i=1kxi=r并且 x i ≤    n i x_i\leq\;n_i xini的方案数。由于 r ≤    n i r\leq\;n_i rni,必定有 x i ≤    n i x_i\leq\;n_i xini,所以只用考虑 ∑ i = 1 k x i = r \sum_{i=1}^k x_i=r i=1kxi=r这一条件。相当于 r r r个物品分给 k k k个人,允许分到0个,隔板法解决。
  10. 不相邻组合
      从 1 1 1~ n n n种选出 m m m个不相邻数字的方案数: C n − m + 1 m C_{n-m+1}^{m} Cnm+1m
      理解:参见不相邻组合

鸽巢原理

基本形式:

  1. 简单形式
      若有 n n n个鸽巢和 n + 1 n+1 n+1只鸽子,所有的鸽子都进入鸽巢,那么至少有一个巢中有 2 2 2只鸽子 ( n , k ≥ 0 ) (n,k≥0) (nk0)
  2. 加强形式
      若有 n n n个鸽巢, q 1 + q 2 + q 3 + . . . q n − n + 1 q_1+q_2+q_3+...q_n-n+1 q1+q2+q3+...qnn+1个鸽子,那么或者第一个巢里有 q 1 q_1 q1只鸽子,或者第二个巢里有 q 2 q_2 q2只鸽子 . . . . . . . ....... .......或者第 n n n个巢里有 q n q_n qn只鸽子,即这 n n n个条件至少满足一个。
      理解:假设都为 q i − 1 q_i-1 qi1,则最终有 ∑ i = 1 n x i = q 1 + q 2 + q 3 + . . . q n − n \sum_{i=1}^n x_i=q_1+q_2+q_3+...q_n-n i=1nxi=q1+q2+q3+...qnn个,但是多出的一个一定会分在其中一个里。

应用

  1. 给定 n n n个整数 a 1 , a 2 , a 3 , . . . . . . a n a_1,a_2,a_3,......a_n a1,a2,a3,......an,存在满足条件 1 ≤    k ≤    l ≤    n 1\leq\;k\leq\;l\leq\;n 1kln的整数 k k k l l l,使得 ∑ i = l k a i \sum_{i=l}^ka_i i=lkai能被 n n n整除。
      理解:转化成前缀和相减,会发现有 n + 1 n+1 n+1种前缀,一定存在两个前缀模 n n n 0 0 0
  2. R a m s e y Ramsey Ramsey定理:在六个人中,要么存在三个人彼此互相认识,要么存在三个人彼此都不认识。
      理解:设六个人为六个点,认识或不认识用两种不同颜色的线段代表,因为两人只有一种关系,所以任意一点一定会引出连向其他5点的五个线段,根据鸽巢定理,有2种关系,有 2 ∗ 2 + 1 = 5 2*2+1=5 22+1=5条关系线,那么必定有一种关系拥有 3 3 3条关系线。

更多性质参见:浅谈鸽巢原理的证明和简单应用

容斥原理

基本公式:


在这里插入图片描述
更形象的理解如图

应用:

  1. 多重集组合数(一般情况)
      定义与前面是一样的,区别在于:设 n = ∑ i = 1 k n i n=\sum_{i=1}^{k}n_i n=i=1kni,对于任意整数 r ≤ &ThickSpace; n r\leq\;n rn,从 S S S中取出 r r r个元素组成一个多重集(不考虑顺序),产生的不同多重集的数量: C k + r − 1 k − 1 − ∑ i = 1 k C n + r − n i − 2 k − 1 + ∑ 1 ≤ &ThickSpace; i &lt; j ≤ &ThickSpace; k C n + r − n i − n j − 3 k − 1 − . . . . . . + ( − 1 ) k C k + r − ∑ i = 1 k n i − k − 1 k − 1 C_{k+r-1}^{k-1}-\sum_{i=1}^{k}C_{n+r-n_i-2}^{k-1}+\sum_{1\leq\;i&lt;j \leq\;k}C_{n+r-n_i-n_j-3}^{k-1}-......+(-1)^kC_{k+r-\sum_{i=1}^kn_i-k-1}^{k-1} Ck+r1k1i=1kCn+rni2k1+1i<jkCn+rninj3k1......+(1)kCk+ri=1knik1k1
      证明:
      不考虑 n i n_i ni的限制,那么总数就是在排列组合中提到的 C k + r − 1 k − 1 C_{k+r-1}^{k-1} Ck+r1k1
      现在有了限制,我们考虑用总数减去不合法方案,即至少包含 n i + 1 n_i+1 ni+1 a i a_i ai的多重集,然后用容斥即可(主要是太懒不想写了 )。

更多应用参见:容斥原理详解

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值