组合数学基本定理

加法原理

完成一件工作有 n n n类方法,第 i i i种方法有 m i m_i mi种不同的方法,完成这件工作共有 n = ∑ i = 1 n m i n= \sum_{i=1}^nm_i n=i=1nmi种方法。

乘法原理

完成一件工作共需 n n n个步骤,第 i i i个步骤有 m i m_i mi种方法,完成这件工作共需 ∏ i = 1 n m i \prod_{i=1}^nm_i i=1nmi种方法。

抽屉原理

原理一

m ( m ≥ n + 1 ) m(m \geq n+1) m(mn+1)件物品放入 n n n个抽屉里,则至少有一个抽屉里有两种物品。

原理二

x ( x ≥ n ∗ m + 1 ) x(x \geq n*m+1) x(xnm+1)件物品放入 n n n个抽屉,至少有一个抽屉里有不少于两件物品。

原理三

把无穷物品放入 n n n个抽屉至少有一个抽屉里有无穷个物品。

例一

问题: 如何证明:从 1 1 1 20 20 20 20 20 20个数任取 11 11 11个数,必有两个数,其中一个数是另外一个数法倍数。

证明: 11 11 11个数是物品,抽屉应该按照“同一抽屉中任意两个数都具有倍数关系”的原则,那么最多可以分为十个抽屉: { 1 , 2 , 4 , 8 , 16 } , { 3 , 6 , 12 } , { 5 , 10 , 20 } , { 7 , 14 } , { 9 , 18 } , { 11 } , { 13 } , { 15 } , { 17 } , { 19 } \{1,2,4,8,16\},\{3,6,12\},\{5,10,20\},\{7,14\},\{9,18\},\{11\},\{13\},\{15\},\{17\},\{19\} {1,2,4,8,16},{3,6,12},{5,10,20},{7,14},{9,18},{11},{13},{15},{17},{19}。显然任取 11 11 11个数,一定满足必有两数是倍数关系。

扩展: 给出正整数 n n n,求出 1 − n 1-n 1n中至少选择多少个数使得必存在两个数是倍数关系?按照上面的构造方式,答案是 ( n < < 1 ) + ( n & 1 ) + 1 (n<<1)+(n\&1)+1 (n<<1)+(n&1)+1

例二

问题: 有一个 3 3 3行十列的表格,每个小方格可以涂上两种颜色,试证明无论怎样涂,至少两列法涂色方法相同。

证明: 每列有三格,显然有 2 3 = 8 2^3=8 23=8种涂法,这 8 8 8种涂法就相当于是抽屉, 10 10 10列相当于物品,由抽屉原理可知显然成立。

例三

问题: 对任意的五个数,证明其中必有三个数的和能被 3 3 3整除。

证明: 3 3 3的剩余系为 { 0 , 1 , 2 } \{0,1,2\} {0,1,2}为抽屉,五个数为物品,五个数分别对三取模,然后分类讨论:

  • 若五个余数分布在其中的三个抽屉中,只需各取一个。
  • 若五个余数分布在其中的两个抽屉中,其中必有一个抽屉至少包含三个数,那么这三个数的和也一定是三的倍数。
  • 若五个余数分布在其中的 1 1 1个抽屉中,由上面知显然成立。
容斥定理

常见的问题,给出班上的总人数,有若干项活动。参与某项活动的参与人数 x i x_i xi,给出同时参与两项活动的人数 y i y_i yi,求三项都参与的人数 z z z,那么有 ∑ i = 1 n x i − ∑ i = 1 n y i + z = t o t \sum_{i=1}^nx_i - \sum_{i=1}^ny_i +z = tot i=1nxii=1nyi+z=tot。显然对于左边来看就是奇数次加上,偶数次减去。

例子

问题: 给出 n n n,求出 [ 1 , n ] [1,n] [1,n]中不是 2 , 3 , 5 2,3,5 2,3,5的倍数的个数。

证明: ⌊ n 2 ⌋ \lfloor \frac{n}{2} \rfloor 2n求出的是 n n n以内 2 2 2的倍数,同理 3 , 5 3,5 3,5,然后我们对三个集合求交集,减去两个数重复的部分,再加上三个数重复的部分。根据容斥定理,答案为: n − [ ( ⌊ n 2 ⌋ ) + ⌊ n 3 ⌋ + ⌊ n 5 ⌋ ) − ( ⌊ n 6 ⌋ + ⌊ n 10 ⌋ + ⌊ n 15 ⌋ ) + ⌊ n 30 ⌋ ] n-[(\lfloor \frac{n}{2} \rfloor) + \lfloor \frac{n}{3} \rfloor + \lfloor \frac{n}{5} \rfloor)- (\lfloor \frac{n}{6} \rfloor+\lfloor \frac{n}{10} \rfloor+\lfloor \frac{n}{15} \rfloor)+\lfloor \frac{n}{30} \rfloor] n[(2n)+3n+5n)(6n+10n+15n)+30n]

多重集的排列组合

S = { n 1 ∗ a 1 , n 2 ∗ a 2 , n 3 ∗ a 3 , . . . , n k ∗ a k } S = \{n_1*a_1 , n_2 * a_2 , n_3 * a_3,...,n_k*a_k\} S={n1a1,n2a2,n3a3,...,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 k a_k ak组成的集合。

多重集的排列数

n = n 1 + n 2 + n 3 + . . . + n k n = n_1 + n_2 + n_3 + ... + n_k n=n1+n2+n3+...+nk,那么全排列的个数为 n ! n 1 ! n 2 ! ⋅ ⋅ ⋅ n k ! \frac{n!}{n_1!n_2!···n_k!} n1!n2!nk!n!

多重集的组合数

定理一: 从多重集 S S S中取出 r ( r ≤ n i , ∀ i ∈ [ 1 , k ] ) r(r \leq n_i, \forall i \in [1,k]) r(rni,i[1,k])个数构成一个多重集的方案个数为 C k + r − 1 k − 1 = C k + r − 1 r C_{k+r-1}^{k - 1} = C_{k+r-1}^r Ck+r1k1=Ck+r1r

证明: 因为 r ≤ n i r \leq n_i rni,所以对于该问题可以等价于有 r r r个小球以及 k − 1 k-1 k1个隔板,这 r + k − 1 r+k-1 r+k1个物品排列后隔板将小球分成 [ 1 , k ] [1,k] [1,k]份,这个方案数实际上就是我们要求的组合数,即 ( k + r − 1 ) ! r ! ( k − 1 ) ! = C k + r − 1 r = C k + r − 1 k − 1 \frac{(k+r-1)!}{r!(k-1)!} = C_{k+r-1}^r = C_{k+r-1}^{k-1} r!(k1)!(k+r1)!=Ck+r1r=Ck+r1k1

定理二: 从多重集 S S S中取出 r ( r ≤ n ) r(r \leq n) r(rn)个数构成一个多重集的方案个数为 C k + r − 1 k − 1 − ∑ i = 1 k C k + r − n i − 2 k − 1 + ∑ 1 ≤ i < j ≤ k C k + 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}^kC_{k+r - n_i - 2}^{k-1} + \sum_{1 \leq i < j \leq k}C_{k+r-n_i-n_j-3}^{k-1} - ···+(-1)^k C_{k+r - \sum_{i=1}^kn_i - (k+1)}^{k-1} Ck+r1k1i=1kCk+rni2k1+1i<jkCk+rninj3k1+(1)kCk+ri=1kni(k+1)k1

证明: 不考虑 n i n_i ni的限制,即从集合 S ′ = { ∞ ∗ a 1 , ∞ ∗ a 2 , . . . , ∞ ∗ a k } S' = \{\infty*a_1, \infty*a_2,..., \infty*a_k\} S={a1,a2,...,ak}取出 r r r个元素,根据定理一可以得到方案数为 C k + r − 1 k − 1 C_{k+r-1}^{k-1} Ck+r1k1。但是这个方案数可能是偏大的,因为可能对于某种元素 a i a_i ai我们取出了 x > n i x>n_i x>ni个元素,考虑减去每个元素的这一部分:设对于 a i a_i ai已经取出了 n i + 1 n_i+1 ni+1个元素,还需要从 S ′ S' S中取出 r − n i − 1 r - n_i-1 rni1个元素,这样就满足了仅对于 a i a_i ai非法取多的情况,同理对于所有的 a i ( 1 ≤ i ≤ k ) a_i(1\leq i \leq k) ai(1ik),那么此时计算得到的方案数为 C k + r − 1 k − 1 − ∑ i = 1 k C k + r − n i − 2 k − 1 C_{k+r-1}^{k-1}- \sum_{i = 1}^kC_{k+r-n_i-2}^{k-1} Ck+r1k1i=1kCk+rni2k1 。但是这不是答案,因为如果在考虑拿至少 n i + 1 n_i+1 ni+1 a i a_i ai后,也同样计算了至少拿 n j + 1 n_j+1 nj+1 a j a_j aj的情况,那么就多减了每两种情况的交集;同理根据容斥,又多加了三个情况的的交集,以此类推。因此上式得证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值