WIKIOI
wiki(I:)
比赛相关
工具软件
语言基础
算法基础
搜索
动态规划
字符串
数学
数据结构
图论
计算几何
杂项
专题
数学部分简介
符号
复数
位运算
快速幂
进位制
高精度计算
平衡三进制
素数
最大公约数
欧拉函数
筛法
欧拉定理 & 费马小定理
类欧几里德算法
裴蜀定理
乘法逆元
线性同余方程
中国剩余定理
二次剩余
BSGS
原根
卢卡斯定理
莫比乌斯反演
杜教筛
Min_25 筛
分解质因数
多项式部分简介
拉格朗日插值
快速傅里叶变换
快速数论变换
快速沃尔什变换
多项式求逆
多项式开方
多项式除法|取模
多项式对数函数|指数函数
多项式牛顿迭代
多项式多点求值|快速插值
多项式三角函数
多项式反三角函数
常系数齐次线性递推
生成函数简介
普通生成函数
指数生成函数
向量
矩阵
高斯消元
线性基
线性规划简介
单纯形算法
排列组合
卡特兰数
斯特林数
贝尔数
伯努利数
康托展开
容斥原理
抽屉原理
概率初步
置换群
斐波那契数列
博弈论
牛顿迭代法
数值积分
分段打表
64 objects
本站非官方,所收集资源均来源于网络。
排列组合 - 数学
排列组合是组合数学中的基础。排列就是指从给定个数的元素中取出指定个数的元素进行排序;组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。排列组合的中心问题是研究给定要求的排列和组合可能出现的情况总数。排列组合与古典概率论关系密切。 在高中初等数学中,排列组合多是利用列表、枚举等方法解题。 * * * ## 加法 & 乘法原理 ### 加法原理 完成一个工程可以有 $n$ 类办法, $a_i(1 \le i \le n)$ 代表第 $i$ 类方法的数目。那么完成这件事共有 $S=a_1+a_2+\cdots +a_n$ 种不同的方法。 ### 乘法原理 完成一个工程需要分 $n$ 个步骤, $a_i(1 \le i \le n)$ 代表第 $i$ 个步骤的不同方法数目。那么完成这件事共有 $S = a_1 \times a_2 \times \cdots \times a_n$ 种不同的方法。 ## 排列与组合基础 ### 排列数 从 $n$ 个不同元素中,任取 $m$ ( $m\leq n$ , $m$ 与 $n$ 均为自然数,下同)个元素按照一定的顺序排成一列,叫做从 $n$ 个不同元素中取出 $m$ 个元素的一个排列;从 $n$ 个不同元素中取出 $m$ ( $m\leq n$ ) 个元素的所有排列的个数,叫做从 $n$ 个不同元素中取出 $m$ 个元素的排列数,用符号 $\mathrm A_n^m$ (或者是 $\mathrm P_n^m$ )表示。 排列的计算公式如下: $$ \mathrm A_n^m = n(n-1)(n-2) \cdots (n-m+1) = \frac{n!}{(n - m)!} $$ $n!$ 代表 $n$ 的阶乘,即 $6! = 1 \times 2 \times 3 \times 4 \times 5 \times 6$ 。 公式可以这样理解: $n$ 个人选 $m$ 个来排队 ( $m \le n$ )。第一个位置可以选 $n$ 个,第二位置可以选 $n-1$ 个,以此类推,第 $m$ 个(最后一个)可以选 $n-m+1$ 个,得: $$ \mathrm A_n^m = n(n-1)(n-2) \cdots (n-m+1) = \frac{n!}{(n - m)!} $$ 全排列: $n$ 个人全部来排队,队长为 $n$ 。第一个位置可以选 $n$ 个,第二位置可以选 $n-1$ 个,以此类推得: $$ \mathrm A_n^n = n(n-1)(n-2) \cdots 3 × 2 × 1 = n! $$ 全排列是排列数的一个特殊情况。 ### 组合数 从 $n$ 个不同元素中,任取 $m$ ( $m\leq n$ ) 个元素组成一个集合,叫做从 $n$ 个不同元素中取出 $m$ 个元素的一个组合;从 $n$ 个不同元素中取出 $m$ ( $m\leq n$ ) 个元素的所有组合的个数,叫做从 $n$ 个不同元素中取出 $m$ 个元素的组合数。用符号 $\mathrm C_n^m$ 来表示。 组合数计算公式 $$ \mathrm C_n^m = \frac{\mathrm A_n^m}{m!} = \frac{n!}{m!(n - m)!} $$ 如何理解上述公式?我们考虑 $n$ 个人 $m$ ( $m \le n$ ) 个出来,不排队,不在乎顺序 $C_n^m$ 。如果在乎排列那么就是 $A_n^m$ ,如果不在乎那么就要除掉重复,那么重复了多少?同样选出的来的 $m$ 个人,他们还要“全排”得 $A_n^m$ ,所以得: $$ \mathrm C_n^m \times m! = \mathrm A_n^m\\\\ \mathrm C_n^m = \frac{\mathrm A_n^m}{m!} = \frac{n!}{m!(n-m)!} $$ 组合数也常用 $\displaystyle \binom{n}{m}$ 表示,读作「 $n$ 选 $m$ 」,即 $\displaystyle \mathrm C_n^m=\binom{n}{m}$ 。实际上,后者表意清晰明了,美观简洁,因此现在数学界普遍采用 $\displaystyle \binom{n}{m}$ 的记号而非 $\mathrm C_n^m$ 。 组合数也被称为「二项式系数」,下文二项式定理将会阐述其中的联系。 特别地,规定当 $m>n$ 时, $\mathrm A_n^m=\mathrm C_n^m=0$ 。 ## 二项式定理 在进入排列组合进阶篇之前,我们先介绍一个与组合数密切相关的定理——二项式定理。 二项式定理阐明了一个展开式的系数: $$ (a+b)^n=\sum_{i=0}^n\binom{n}{i}a^{n-i}b^i $$ 证明可以采用数学归纳法,利用 $\displaystyle \binom{n}{k}+\binom{n}{k-1}=\binom{n+1}{k}$ 做归纳。 二项式定理也可以很容易扩展为多项式的形式: 设 n 为正整数, $x_i$ 为实数, $$ (x_1 + x_2 + \cdots + x_t)^n = \sum_{满足 n_1 + \cdots + n_t=n 的非负整数解} \binom{n}{n_1n_2\cdots n_t} x_1^{n_1}x_2^{n_2}\cdots x_t^{n_t} $$ 其中的 $\binom{n}{n_1,n_2,\cdots ,n_t}$ 是多项式系数,它的性质也很相似: $$ \sum{\binom{n}{n_1n_2\cdots n_t}} = t^n $$ ## 排列与组合进阶篇 接下来我们介绍一些排列组合的变种。 ### 多重集的排列数 | 多重组合数 请大家一定要区分 **多重组合数** 与 **多重集的组合数** !两者是完全不同的概念! 多重集是指包含重复元素的广义集合。设 $S=\\{n_1\cdot a_1,n_2\cdot a_2,\cdots,n_k\cdot a_k,\\}$ 表示由 $n_1$ 个 $a_1$ , $n_2$ 个 $a_2$ ,…, $n_k$ 个 $a_k$ 组成的多重集, $S$ 的全排列个数为 $$ \frac{n!}{\prod_{i=1}^kn_i!}=\frac{n!}{n_1!n_2!\cdots n_k!} $$ 相当于把相同元素的排列数除掉了。具体地,你可以认为你有 $k$ 种不一样的球,每种球的个数分别是 $n_1,n_2,\cdots,n_k$ ,且 $n=n_1+n_2+\ldots+n_k$ 。这 $n$ 个球的全排列数就是 **多重集的排列数** 。多重集的排列数常被称作 **多重组合数** 。我们可以用多重组合数的符号表示上式: $$ \binom{n}{n_1,n_2,\cdots,n_k}=\frac{n!}{\prod_{i=1}^kn_i!} $$ 可以看出, $\displaystyle \binom{n}{m}$ 等价于 $\displaystyle \binom{n}{m,n-m}$ ,只不过后者较为繁琐,因而不采用。 ### 多重集的组合数 1 设 $S=\\{n_1\cdot a_1,n_2\cdot a_2,\cdots,n_k\cdot a_k,\\}$ 表示由 $n_1$ 个 $a_1$ , $n_2$ 个 $a_2$ ,…, $n_k$ 个 $a_k$ 组成的多重集。那么对于整数 $r(r