- gf24118 的博客
GF2025C2排列与组合
- 2025-8-6 16:53:56 @
排列与组合!!!
编者注:遇到最左侧箭头请点击查看详情,再次点击回退
排列
加法原理
咱们做一件事,比如说学习信奥,完成它可以有类办法(可以是自主学习,也可以是跟dxd学等等),在第一类办法中有种不同的方法,在第二类办法中有种不同的方法,以此类推,故在第类办法中自然就有种不同的办法,所以完成这件事有种不同的方式,可学习信奥的方式却是 的。(doge)
加法原理中每一类的每一种方法可以独立完成此任务,分类不重,且分类不漏。
乘法原理
乘法原理其实和上面的差不多,就是完成种类有罢了,而且必须连续完成n步,称分步计数法。
定义
为了方便理解,接下来用栗子说明。
编者注:以下举例无特指,请不要对号入座。
都爱吃土豆吧,现在你要从个形状大小不同的土豆中选择个土豆,用一定顺序排成一列,叫做从n个不同的元素中取出m个元素的一个排列。
公式
计算公式如下:
对了,当m=n时,称为全排列,它是一种特殊的排列。
方法:
捆绑法:
顾名思义,捆绑嘛,就是把一些相邻在一起的土豆扎成一捆,将它们看做一个大整体,简称大土豆,于是再将大土豆和其他元素一同排列,并且注意大土豆内的小土豆排列的方法叫做捆绑法。
公式:
插空法:
不用土豆了,你面前有几只鸡,每个鸡之间肯定有一定的空间(空位),选某几只鸡,它们既不相邻,也没有和哥哥的血缘关系。为了解决对于这种某几个元素不相邻的问题,先将其他元素排好,也就是让鸡排成一列,再将指定的不相邻的元素插入已排好的元素间隙或两端位置即可,俗称插空法。
公式:,
排除法:
e,这个方法不细讲了,是个入都会。
公式:
插板法(又称隔板法):
插板法(Stars and bars)是用于求一类给相同元素分组的方案数的一种技巧,也可以用于求一类线性不定方程的解的组数。
使用这个方法有前提,就像哥哥成名要练习两年半一个道理,前提是所有元素必须相同,然后再进行分组(若干组),每组至少一个元素。
公式:
特殊排列
-
重复排列:从个不同的物体中,允许重复选取,共选出r个物体排列的方案数:
-
全排列:详情见上
组合
定义
还是土豆吧,也是跟上面一样,不过这次是将它们并成一组。
定理(未学,网上摘抄)
编者注:以下纯理论知识,略枯燥
二项式定理
在进入排列组合进阶篇之前,我们先介绍一个与组合数密切相关的定理——二项式定理。 二项式定理阐明了一个展开式的系数:
证明可以采用数学归纳法,利用 做归纳。
二项式定理也可以很容易扩展为多项式的形式:
设 为正整数,为实数,
$$(x_1 + x_2 + \cdots + x_t)^n = \sum_{满足 n_1 + \cdots + n_t=n 的非负整数解} \binom{n}{n_1,n_2,\cdots,n_t} x_1^{n_1}x_2^{n_2}\cdots x_t^{n_t} $$其中的 是多项式系数,它的性质也很相似:
公式
看不看得懂看就完啦~~~~
组合记号和公式:
其中 和 代表元素总数和选取的元素数量。
由此可知:
特殊组合
- 重复组合:从个不同的物体中,允许重复选取,共选出r个物体组合的方案数:,也可写作
以下纯干货,自行判断是否继续阅读。编者将不在注入趣味内容。
排列与组合进阶篇
注:GF2025C2阶同学暂未学习,来源网络
接下来我们介绍一些排列组合的变种。
多重集的排列数 | 多重组合数
请大家一定要区分 多重组合数 与 多重集的组合数!两者是完全不同的概念! 多重集是指包含重复元素的广义集合。设 $S=\{n_1\cdot a_1,n_2\cdot a_2,\cdots,n_k\cdot a_k\}$ 表示由 个 ,个 ,个 组成的多重集, 的全排列个数为
$$\frac{n!}{\prod_{i=1}^kn_i!}=\frac{n!}{n_1!n_2!\cdots n_k!} $$相当于把相同元素的排列数除掉了。具体地,你可以认为你有 种不一样的球,每种球的个数分别是 ,且 。这 个球的全排列数就是 多重集的排列数。多重集的排列数常被称作 多重组合数。我们可以用多重组合数的符号表示上式:
$$\binom{n}{n_1,n_2,\cdots,n_k}=\frac{n!}{\prod_{i=1}^kn_i!} $$可以看出,等价于 ,只不过后者较为繁琐,因而不采用。
多重集的组合数 1
设 $S=\{n_1\cdot a_1,n_2\cdot a_2,\cdots,n_k\cdot a_k\}$表示由 个 ,个 ,个 组成的多重集。那么对于整数 ,从 中选择 个元素组成一个多重集的方案数就是多重集的组合数。这个问题等价于 的非负整数解的数目,可以用插板法解决,答案为
多重集的组合数 2
考虑这个问题:设 $S=\{n_1\cdot a_1,n_2\cdot a_2,\cdots,n_k\cdot a_k,\} $表示由 个 ,个 ,个 组成的多重集。那么对于正整数 ,从 中选择 个元素组成一个多重集的方案数。
这样就限制了每种元素的取的个数。同样的,我们可以把这个问题转化为带限制的线性方程求解:
$$\forall i\in [1,k],\ x_i\le n_i,\ \sum_{i=1}^kx_i=r $$于是很自然地想到了容斥原理。容斥的模型如下:
- 全集:的非负整数解。
- 属性:。
于是设满足属性 的集合是 ,表示不满足属性 的集合,即满足 的集合(转化为上面插板法的问题三)。那么答案即为
根据容斥原理,有:
拿全集 减去上式,得到多重集的组合数
其中 A 是充当枚举子集的作用,满足 。
圆排列
个人全部来围成一圈,所有的排列数记为 。考虑其中已经排好的一圈,从不同位置断开,又变成不同的队列。 所以有
$$\mathrm Q_n^n \times n = \mathrm A_n^n \Longrightarrow \mathrm Q_n = \frac{\mathrm A_n^n}{n} = (n-1)! $$由此可知部分圆排列的公式:
$$\mathrm Q_n^r = \frac{\mathrm A_n^r}{r} = \frac{n!}{r \times (n-r)!} $$组合数性质 | 二项式推论
由于组合数在 OI 中十分重要,因此在此介绍一些组合数的性质。
相当于将选出的集合对全集取补集,故数值不变。(对称性)
由定义导出的递推式。
组合数的递推式(杨辉三角的公式表达)。我们可以利用这个式子,在 的复杂度下推导组合数。
这是二项式定理的特殊情况。取 就得到上式。
二项式定理的另一种特殊情况,可取 。式子的特殊情况是取 时答案为 。
拆组合数的式子,在处理某些数据结构题时会用到。被称为 范德蒙恒等式。
这是 的特殊情况,取 即可。
带权和的一个式子,通过对 对应的多项式函数求导可以得证。
与上式类似,可以通过对多项式函数求导证明。
通过组合分析一一考虑 的 子集数可以得证,在恒等式证明中比较常用。被称为朱世杰恒等式。
通过定义可以证明。
其中 是斐波那契数列。
通过 可以证明。被称为李善兰恒等式。
二项式反演
记 表示恰好使用 个不同元素形成特定结构的方案数,表示从 个不同元素中选出 个元素形成特定结构的总方案数。
若已知 求 ,那么显然有:
若已知 求 ,那么:
上述已知 求 的过程,就称为二项式反演。
证明:
将反演公式的 展开得到:
先枚举 ,再枚举 ,得到:
使用 「组合数性质 | 二项式推论」 的得到:
令 。则 ,上式转换为:
使用 「组合数性质 | 二项式推论」 的得到:
证毕。