参考
https://oi-wiki.org/math/combinatorics/combination/
加法 & 乘法原理
加法原理
完成一个工程可以有 n 类办法,ai(1≤i≤n) 代表第 i 类方法的数目。那么完成这件事共有 S=a1+a2+⋯+an 种不同的方法。
乘法原理
完成一个工程需要分 n 个步骤,ai(1≤i≤n) 代表第 i 个步骤的不同方法数目。那么完成这件事共有 S=a1×a2×⋯×an 种不同的方法。
排列基础
全排列:n 个人全部来排队,队长为 n。第一个位置可以选 n 个,第二位置可以选 n−1 个,以此类推得:
Ann=n(n−1)(n−2)⋯3×2×1=n!
全排列是排列数的一个特殊情况。
从 n 个不同元素中,任取 m(m≤n,m 与 n 均为自然数,下同)个元素按照一定的顺序排成一列,叫做从 n 个不同元素中取出 m 个元素的一个排列;从 n 个不同元素中取出 m(m≤n) 个元素的所有排列的个数,叫做从 n 个不同元素中取出 m 个元素的排列数,用符号 Anm(或者是 Pnm)表示。
排列的计算公式如下:
Anm=n(n−1)(n−2)⋯(n−m+1)=(n−m)!n!
n! 代表 n 的阶乘,即 6!=1×2×3×4×5×6。
公式可以这样理解:n 个人选 m 个来排队 (m≤n)。第一个位置可以选 n 个,第二位置可以选 n−1 个,以此类推,第 m 个(最后一个)可以选 n−m+1 个,得:
Anm=n(n−1)(n−2)⋯(n−m+1)=(n−m)!n!
组合基础
从 n 个不同元素中,任取 m≤n 个元素组成一个集合,叫做从 n 个不同元素中取出 m 个元素的一个组合;从 n 个不同元素中取出 m≤n 个元素的所有组合的个数,叫做从 n 个不同元素中取出 m 个元素的组合数,用符号 (mn) 来表示,读作「n 选 m」。
组合数计算公式
(mn)=m!Anm=m!(n−m)!n!
如何理解上述公式?我们考虑 n 个人选 m 个出来(m≤n),不排队,不在乎顺序。如果在乎顺序那么就是 Anm,如果不在乎那么就要除掉重复,那么重复了多少?同样选出来的 m 个人,他们还要「全排」得 m!,所以得:
(mn)×m! (mn)=Anm=m!Anm=m!(n−m)!n!
组合数也常用 Cnm 表示,即 Cnm=(mn)。现在数学界普遍采用 (mn) 的记号而非 Cnm。
组合数也被称为「二项式系数」,下文二项式定理将会阐述其中的联系。
特别地,规定当 m>n 时,Anm=(mn)=0。