Skip to main content

计数原理

参考资料

原理

加法原理

加法原理:完成一项任务有 nn 类方式,第 ii 类有 aia_i 种方案,则完成该任务的方案数为:

i=1nai=a1+a2++an\sum_{i=1}^n a_i=a_1+a_2+\dots+a_n
Example

从家到学校有 22 类出行方式:

  1. 乘地铁:可选择地铁 11 号线或 55 号线,共 22 种;
  2. 乘公交:可选择公交 2626 路、3838 路或 4545 路,共 33 种。

根据加法原理,共有 2+3=52+3=5 种不同的出行方案。

乘法原理

乘法原理:完成一项任务有 nn 个步骤,第 ii 个步骤有 aia_i 种方案,则完成该任务的方案数为:

i=1nai=a1×a2××an\prod_{i=1}^n a_i=a_1\times a_2\times\dots\times a_n
Example

早上穿衣时:

  1. 上衣有 44 件;
  2. 裤子有 33 条。

根据乘法原理,共有 4×3=124\times 3=12 种不同的搭配方案。

排列组合

全排列

全排列:将 nn 个不同物品排成一列:

  • 11 个位置有 nn 种选择;
  • 22 个位置有 n1n-1 种选择;
  • 33 个位置有 n2n-2 种选择;
  • ……
  • n1n-1 个位置有 22 种选择;
  • nn 个位置有 11 种选择。

根据乘法原理,全排列的方案数为:

n×(n1)×(n2)××2×1n\times(n-1)\times(n-2)\times\dots\times 2\times 1

我们将正整数 11nn 的连乘积称为 阶乘,用 nn 后面加感叹号(!!)表示。

n×(n1)×(n2)××2×1=n!n\times(n-1)\times(n-2)\times\dots\times 2\times 1=n!

特别地,我们定义:

0!=10!=1

对于正整数 nn 的阶乘,有:

n!=n×(n1)!n!=n\times (n-1)!
Example
0!=1,1!=1,2!=2,3!=6,4!=24,5!=120,6!=7200!=1,1!=1,2!=2,3!=6,4!=24,5!=120,6!=720\dots

排列

考虑从 nn 个不同物品中选取 mm 个,排成一列:

  • 11 个位置有 nn 种选择;
  • 22 个位置有 n1n-1 种选择;
  • 33 个位置有 n2n-2 种选择;
  • ……
  • m1m-1 个位置有 nm+2n-m+2 种选择;
  • mm 个位置有 nm+1n-m+1 种选择。

根据乘法原理,“从 nn 个不同物品中选取 mm 个进行排列的方案数”的方案数为:

n×(n1)×(n2)××(nm+1)=n!(nm)!n\times(n-1)\times(n-2)\times\dots\times(n-m+1)=\frac{n!}{(n-m)!}

我们用 Anm\mathrm{A}_n^m 表示 排列数

Anm=n!(nm)!=n×(n1)×(n2)××(nm+1)\mathrm{A}_n^m=\frac{n!}{(n-m)!}=n\times(n-1)\times(n-2)\times\dots\times(n-m+1)
tip

排列数还可以用 Pnm\mathrm{P}_n^m 表示,在国内高中教材中通常使用 Anm\mathrm{A}_n^m

Anm=Pnm\mathrm{A}_n^m=\mathrm{P}_n^m

组合

考虑从 nn 个不同元素中选取 mm 个,但不管顺序。

若考虑顺序,这就变成了排列问题,我们已经知道有 Anm\mathrm{A}_n^m 种方案。

在这些排列方案中,每组 mm 个元素由于顺序不同被重复计算了 m!m! 次,因此真正的方案数为:

Anmm!\frac{\mathrm{A}_n^m}{m!}

我们用 Cnm\mathrm{C}_n^m 表示 组合数

Cnm=Anmm!=n!m!(nm)!=n×(n1)××(nm+1)m×(m1)××2×1\mathrm{C}_n^m=\frac{\mathrm{A}_n^m}{m!}=\frac{n!}{m!(n-m)!}=\frac{n\times(n-1)\times\dots\times(n-m+1)}{m\times(m-1)\times\dots\times 2\times 1}
tip

组合数还可以用 (nm)\dbinom{n}{m} 表示,请注意 nnmm 的位置。

Cnm=(nm)\mathrm{C}_n^m=\dbinom{n}{m}

性质

  • Cnm=Cnnm\mathrm{C}_n^m=\mathrm{C}_n^{n-m}
  • Cnm=Cn1m+Cn1m1\mathrm{C}_n^m=\mathrm{C}_{n-1}^m+\mathrm{C}_{n-1}^{m-1}
  • mnCnm=Cn1m1\frac{m}{n}\mathrm{C}_n^m=\mathrm{C}_{n-1}^{m-1}
  • nnmCn1m=Cnm\frac{n}{n-m}\mathrm{C}_{n-1}^m=\mathrm{C}_n^m
  • i=0nCni=Cn0+Cn1+Cn2++Cnn=2n\sum_{i=0}^{n}\mathrm{C}_n^i=\mathrm{C}_n^0+\mathrm{C}_n^1+\mathrm{C}_n^2+\dots+\mathrm{C}_n^n=2^n
  • Cn0+Cn2+Cn4+=Cn1+Cn3+Cn5+\mathrm{C}_n^0+\mathrm{C}_n^2+\mathrm{C}_n^4+\dots=\mathrm{C}_n^1+\mathrm{C}_n^3+\mathrm{C}_n^5+\dots

应用

  1. nn完全相同 的元素,要求将其分为 kk 组,保证每组至少有一个元素,一共有多少种分法?

考虑拿 k1k-1 块板子插入到 nn 个元素两两形成的 n1n-1 个空里面,答案为 Cn1k1\mathrm{C}_{n-1}^{k-1},本质是求 x1+x2++xk=nx_1+x_2+\dots+x_k=n 的正整数解的组数。

  1. 若问题变换一下,每组允许为空?

考虑创造条件转化成有限制的问题一,先借 kk 个元素过来,在这 n+kn+k 个元素形成的 n+k1n+k-1 个空里面插板,答案为 Cn+k1n\mathrm{C}_{n+k-1}^n,本质是求 x1+x2++xk=nx_1+x_2+\dots+x_k=n 的非负整数解的组数。

  1. 再扩展一步,要求对于第 ii 组,至少要分到 aia_i 个元素呢?(ain\sum a_i\leq n

本质是求 x1+x2++xk=nx_1+x_2+\dots+x_k=n 的整数解的数目。

类比无限制的情况,我们借 ai\sum a_i 个元素过来,保证第 ii 组能至少分到 aia_i 个,也就是令 xi=xiaix_i'=x_i-a_ixi0x_i'\geq 0

得到新方程:

(x1+a1)+(x2+a2)++(xk+ak)=n    i=1kxi=nai(x_1'+a_1)+(x_2'+a_2)+\dots+(x_k'+a_k)=n\implies\sum_{i=1}^{k}x_i'=n-\sum a_i

答案为:

Cnai+k1k1\mathrm{C}_{n-\sum a_i+k-1}^{k-1}
  1. nn 个连续整数选 kk 个,这 kk 个数中两两都不相邻的组合有 Cnk+1k\mathrm{C}_{n-k+1}^k 种。

  2. 若将 nn不同的 的元素分成 aa 组,第 ii 组的数量为 nin_i,其中相同的组共有 bb 类,第 kk 类的相同组的个数为 sks_k,则方案数为:

n!i=1a(ni!)×k=1b(sk!)\frac{n!}{\prod_{i=1}^a(n_i!)\times\prod_{k=1}^b(s_k!)}

原理:

Cnn1Cnn1n2Cnana=n!n1!×n2!××na!=ni=1a(ni!)\mathrm{C}_{n}^{n_1}\mathrm{C}_{n-n_1}^{n_2}\dots \mathrm{C}_{n_a}^{n_a}=\frac{n!}{n_1!\times n_2!\times\dots\times n_a!}=\frac{n}{\prod_{i=1}^a(n_i!)}
Example

66 本不同的书分给甲乙丙 33 人,每人 22 本,有多少种分法?

这是不同的 33 组,即没有相同的组,故不用消除组间排序,答案为:

6!2!2!2!=90\frac{6!}{2!2!2!}=90

如果是分成三组每组 22 本,那就要消除组间排序,答案为:

6!(2!2!2!)×3!=15\frac{6!}{(2!2!2!)\times 3!}=15

二项式定理

二项式 是只有 22 项的多项式,例如 a+ba+b

在初中阶段,我们已经学过 (a+b)2(a+b)^2(a+b)3(a+b)^3 的展开式。

考虑 (a+b)n(a+b)^n 的各项系数有什么规律?

我们发现,(a+b)n(a+b)^n 展开后会有 2n2^n 项。

其中,若取 kk 个因子为 aa,其余 nkn-k 个因子为 bb,就会得到含有 akbnka^kb^{n-k} 的项。

而从 nn 个因子中选出 kk 个为 aa 的方法数正好是 Cnk\mathrm{C}_n^k

由此,我们得到了著名的 二项式定理

(a+b)n=k=0nCnkakbnk(a+b)^n=\sum_{k=0}^{n}\mathrm{C}_n^ka^kb^{n-k}

其中各项的系数 Cnk\mathrm{C}_n^k 叫做 二项式系数

Example
(2x+3y)3=8x3+36x2y+54xy2+27y3(2x+3y)^3=8x^3+36x^2y+54xy^2+27y^3

对于三项式,也可以使用公式展开,但过程较为复杂:

(a+b+c)n=i+j+k=nn!i!j!k!aibjck(a+b+c)^n=\sum_{i+j+k=n}\frac{n!}{i!j!k!}a^ib^jc^k
Example
(a+b+c)3=3!3!0!0!a3+3!0!3!0!b3+3!0!0!3!c3+3!2!1!0!a2b+3!2!0!1!a2c+3!1!2!0!ab2+3!0!2!1!b2c+3!1!0!2!ac2+3!0!1!2!bc2+3!1!1!1!abc=a3+b3+c3+3a2b+3a2c+3b2a+3b2c+3c2a+3c2b+6abc\begin{aligned} (a+b+c)^3 &= \frac{3!}{3!0!0!}a^3+\frac{3!}{0!3!0!}b^3+\frac{3!}{0!0!3!}c^3+\frac{3!}{2!1!0!}a^2b+\frac{3!}{2!0!1!}a^2c \\ &+ \frac{3!}{1!2!0!}ab^2+\frac{3!}{0!2!1!}b^2c+\frac{3!}{1!0!2!}ac^2+\frac{3!}{0!1!2!}bc^2+\frac{3!}{1!1!1!}abc \\ &= a^3+b^3+c^3+3a^2b+3a^2c+3b^2a+3b^2c+3c^2a+3c^2b+6abc \end{aligned}

杨辉三角形

我们将二项式系数排列为三角形,就得到了 杨辉三角形

杨辉三角形中的每个数都对应一个 组合数,而每个数是它 左上方右上方 的数的和。