排列与组合的一些定理(二)

简介:

一,容斥原理

设S是一个集合,Ai 是S 中具有性质 Pi 的元素组成的子集合。那么,S中既不具有性质P1,也不具有性质P2,...更不具有性质Pn 的元素个数为:

 

二,容斥原理计算 有限制的重组合问题

①什么是有限制的重组合问题?(重组合就是,某个元素可重复选择)

从集合{k1·b1,k2·b2,....,kn·bn}中选取r个元素,(不考虑次序),一共有多少种组合?

元素,可以是一个抽象的概念。一切问题,只要满足这个“范式”,就可以视为一个重组合问题,从而用容斥原理求解。

从集合可以看出:b1 最多只能选取k1个,b2 最多只能选取k2个,...,bn 最多只能选取kn

而在这篇文章的末尾提到了无限的重组合问题求解公式。因此,可以试着将有限制的重组合问题转化为无限制的重组合问题(但是附加了一些条件)

解法如下:

首先考虑问题1:在无限制的重组合问题的 集合中选取 r 个元素时,一共有多少种选取方法?----答案是一共有F(n,r)种。

然后再定义: 性质A1 表示 问题1得到的选取方案中 至少要存在 k1+1 个b1

性质A2 表示 问题1得到的选取方案中 至少要存在 k2+1 个b2

.....

性质An 表示 问题1得到的选取方案中 至少要存在 kn+1 个bn

从而,问题:从集合{k1·b1,k2·b2,....,kn·bn}中选取r个元素,(不考虑次序),一共有多少种组合?

转化成了:从集合{∞·b1,∞·b2,....,∞·bn}中选取r个元素,(不考虑次序),并且b1不超过k1 b2不超过k2,bn不超过kn,一共有多少种组合?

因此,有限制的重组合问题就转化成了无限制的重组合问题,但是附加了条件:b1不超过k1 ,b2不超过k2,bn不超过kn

用数学公式表示就是:|A¯1 ∩ A¯2 ∩....A¯n|    A¯1表示不具有A1性质的集合(即A1的非)

根据容斥原理:|A¯1 ∩ A¯2 ∩....A¯n|就可以计算出来了。

 

三,容斥原理计算错排问题

错排问题就是:给定N个数1,2,3...n  要求第 i 个数不在 第 i 个位置上,一共有多少种排列?

性质A1表示第 1 个数恰好在 1 位置上

性质A2表示第 2 个数恰好在 2 位置上

.....

性质An表示第 n 个数恰好在 n 位置上

错排问题就可以表示成公式:|A¯1 ∩ A¯2 ∩....A¯n| ,就可以用“容斥原理”来计算了。

 

四,棋盘多项式

是一种更复杂度的错排问题。

比如,给定一个4行4列的矩阵,元素1不能放在第1行第2列;元素2不能放在第4行第3列;元素3不能放在第1行第3列。求这三个元素一共有多少种放置方式?

 

五,母函数

母函数有两种:普通的母函数 和 指数母函数。普通母函数一般用来解决组合问题,指数母函数用来解决排列问题。

不管是排列问题,还是组合问题。都是从 n 个数中选出若干个数。排列问题关注的是:是把选出的数做排列(考虑顺序),组合问题则是不考虑顺序。

①普通母函数

(1+x)(1+x)...(1+x)(1+x)=(1+x)n 这个公式表示了:一共有n个物品,每个物品要么不选,要么选中(每个物品最多只能选一次)。

对于每一项(1+x),1 表示不选,x表示选中。一共有 n 个(1+x),即表示一共有 n 个物品。

那么从 n 个物品中选取 r个一共有多少种选择?(不考虑顺序--默认是组合问题)

将(1+x)(1+x)...(1+x)(1+x) 乘出来,得到1,2...n的多项式。xr 的系数就是: n 个物品中选取 r个的 总共的选取方法数。

由二项式定理:(1+x)n = C(n,0)X0 Yn + C(n,1)X1 Yn-1 +.....+ C(n,n)Xn Y0 = C(n,0)X0 + C(n,1)X1 +.....+ C(n,n)Xn (其中Y=1)

可以看出 xr 的系数为C(n,r),刚好符合。

普通,对这种简单的组合问题,用普通母函数计算太复杂了。普通母函数合适的是更复杂一些的组合问题

如,有 n 个物品,每个物品最多可选两次,从中选取 r 个有多少种选择方案?母函数为:

(1+x+x2)(1+x+x2).....(1+x+x2) = (1+x+x2)n

选择方案数为(1+x+x2)(1+x+x2).....(1+x+x2) = (1+x+x2)n xr 的系数。

再比如,有 n 个物品,每个只能选奇数次,母函数如下:

(x+x3+...x2k-1)(x+x3+...x2k-1).....(x+x3+...x2k-1) = (x+x3+...x2k-1)n

......

再比如,有4 个物品,第1个物品最多只能选 2次,第二个物品只能选奇数次,第三个物品只能选偶数次,第四个物品最多只能选取3次。从中选取 r 个物品,一共有多少种选择方案?(组合问题)

普通母函数如下:(1+x+x2)(x+x3+...x2k-1)(1+x2+...x2k)(1+x+x2+x3)

将上面的母函数解出来,xr 的系数就是选择的方案的数目。

 

②指数母函数

指数母函数的用法与普通母函数的用法一致。只不过是“表示形式”不同而已。

(1+x+x2+x3)在普通母函数中 表示某个物品在组合计数中 可选0次,1次,2次,3次【或者说该物品最多可选3次】

指数母函数中选择某个物品该如何表示呢?

(1+x+x2/2!+x3/3!+...+xk/k!)就表示:某个物品在排列计数中 可选0次,1次,2次....k次【或者说该物品最多可选k次】

如,有 n 个物品,每个物品最多可选两次,从中选取 r 个有多少种选择方案?母函数为:

(1+x+x2/2!)(1+x+x2/2!).....(1+x+x2/2!) = (1+x+x2/2!)n

选择方案数为(1+x+x2/2!)(1+x+x2/2!).....(1+x+x2/2!) = (1+x+x2/2!)n的 xr 的系数。

再比如,有4 个物品,第1个物品最多只能选 2次,第二个物品只能选奇数次,第三个物品只能选偶数次,第四个物品最多只能选取3次。从中选取 r 个物品,一共有多少种选择方案?(排列问题)

指数母函数如下:(1+x+x2/2!)[(x+x3/3!+...x2k-1/(2k-1)!)][(1+x2/2!+...x2k/(2k)!](1+x+x2/2!+x3/3!)

排列的方案数就是指数母函数解出来,xr的系数

 

六,整数拆分

给定一个整数 n,将 n 拆分成 1,2,3 的和,一共有多少种拆分方式?

比如:n=4。 4=1+1+1+1;4=1+1+2;4=2+2;4=1+3

故一共有4种拆分方式。

考虑(1-x)-1 = (1+x+x2+...+xn),根据上面的普通母函数可知:“某个物品可选0次,1次,2次.....n次” (1*[0,1,2,...n])

比如:x3 就表示数字1选取了3次,x2表示数字1选取了2次....

考虑(1-x2)-1 = (1+x2+x4+...+x2n),根据上面的普通母函数可知:“某个物品可选0次,2次,4次.....2n次” (2*[0,1,2,...n])

比如:x6就表示数字2选取了3次,x4表示数字2选取了2次....

考虑(1-x3)-1 = (1+x2+x4+...+x2n),根据上面的普通母函数可知:“某个物品可选0次,3次,6次.....3n次”(3*[0,1,2,...n])

比如:x6就表示数字3选取了2次,x3表示数字3选取了1次....

 

因此,整数 n 拆分成1,2,3之和的方式数为:


(1-x1)-1 *(1-x2)-1 * (1-x3)-1 xn 的系数就是整数 n 拆分成 1,2,3 之和的方式数。(也就是说 n 只能由 1,2,3 相加得到,但是1,2,3,可以出现多次)

定理:给定一个整数 n ,将 n 拆分成 a ,b ,c ...和的方法数是:

 

七,一些常用的泰勒展开式

(1-x)-1 = 1+x2+x3+....+xn+...

ex=1+x+x2/2!+x3/3!+...+xn/n!+....

 

八,参考资料

排列与组合的一些定理


本文转自hapjin博客园博客,原文链接:http://www.cnblogs.com/hapjin/p/5678888.html,如需转载请自行联系原作者

相关文章
|
4月前
|
存储 算法 程序员
【算法训练-回溯算法 二】【子集组合问题】子集、组合、子集II、组合总和
【算法训练-回溯算法 二】【子集组合问题】子集、组合、子集II、组合总和
40 0
|
8月前
|
存储 Java
数论——因子组合
数论——因子组合
|
10月前
|
存储 算法
回溯算法:排列与组合详解
回溯算法,本质上是一种穷举算法,属于暴力搜索算法的一种。它虽然可以使用剪枝进行优化,仍不高效,但却实用。它往往能够解决可以抽象成树形结构的问题,亦可以认为是使用 K 层 for循环实现搜索的问题。
101 0
回溯算法:排列与组合详解
|
机器学习/深度学习 算法 Java
排序不等式算法
排序不等式算法
排序不等式算法
|
存储 算法
四式解决回溯算法:组合+组合总和
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。
665 3
排列组合相关公式讲解(Anm,Cnm等)
排列组合相关公式讲解(Anm,Cnm等)
1998 0
排列组合相关公式讲解(Anm,Cnm等)
|
机器学习/深度学习
【组合数学】组合数学简介 ( 组合思想 3 : 上下界逼近 | 上下界逼近示例 Remsey 数 )
【组合数学】组合数学简介 ( 组合思想 3 : 上下界逼近 | 上下界逼近示例 Remsey 数 )
201 0
【组合数学】组合数学简介 ( 组合思想 3 : 上下界逼近 | 上下界逼近示例 Remsey 数 )
|
机器学习/深度学习 移动开发
【计算理论】可判定性 ( 对角线方法 | 证明自然数集 N 与实数集 R 不存在一一对应关系 )
【计算理论】可判定性 ( 对角线方法 | 证明自然数集 N 与实数集 R 不存在一一对应关系 )
284 0
【组合数学】排列组合 ( 排列组合示例 )
【组合数学】排列组合 ( 排列组合示例 )
213 0
|
机器学习/深度学习 移动开发
【组合数学】排列组合 ( 集合排列、分步处理示例 )
【组合数学】排列组合 ( 集合排列、分步处理示例 )
151 0