【科技】 数数(组合数学)

今天终于开坑了,开始学数数。

基本原理

加法原理:对于一件事,有 \(n\) 种方法,其中第 \(i\) 种方法有 \(a_i\) 个方案,则总方案是 \(\sum_{i=1}^n a_i\).

乘法原理:对于若干件相互独立的事,第 \(i\) 件事有 \(a_i\) 种方法,则总方案数为 \(\prod_{i=1}^n a_i\).

排列数:从 \(n\) 个东西里面抽 \(m\) 个,不同顺序算作不同方案,总方案数为 \(\mathrm{A}_n^m=\frac{n!}{(n-m)!}\).

证明可以这样考虑:第一次选择有 \(n\) 种选择,第二次有 \((n-1)\) 种,第三次有 \((n-2)\)\(\cdots\)\(m\) 次有 \(n-m+1\) 种,故总方案数为 \(\prod_{i=n-m+1}^n=\frac{n!}{(n-m)!}\).

组合数:与排列数类似,只不过不同顺序算作同种方案,记作 \(\mathrm{C}_n^m=\frac{n!}{m!(n-m)!}\),不过更常用的记法是 \(\binom{n}{m}\).

二项式定理

定义在整数域上的二项式定理:

\[(a+b)^n=\sum_{i=0}^n\binom{n}{i}a^ib^{n-i} \]

因此组合数也叫二项式系数.

证明:

首先引出一个组合数的递推式:

\[\binom{n}{m}=\binom{n-1}{m}+\binom{n-1}{m-1} \]

从组合意义上来理解:对于某一件物品分类讨论,当这件物品被选择时,就要在剩下的 \(n-1\) 件里面选出 \(m-1\) 件,否则在剩下的 \(n-1\) 件里面选出 \(m\) 件.

考虑数学归纳法:

\(n=0\) 时,原式显然成立,现在假设当 \(n=x-1\) 时等式成立,即:\((a+b)^{x-1}=\sum_{i=0}^{x-1}\binom{x-1}{i}a^ib^{x-i-1}\).

那么

\[(a+b)^x=\sum_{i=0}^{x-1}\big(\binom{x-1}{i}a^{i+1}b^{x-i-1}+\binom{x-1}{i}a^ib^{x-i}\big) \]

\[=\sum_{i=1}^{x}\binom{x-1}{i-1}a^{i}b^{x-i}+\sum_{i=0}^{x-1}\binom{x-1}{i}a^ib^{x-i} \]

由于当 \(i=x\)\(i=0\) 时都有一个式子是 \(0\),所以可以写成:

\[\sum_{i=0}^{x}\big(\binom{x-1}{i-1}a^{i}b^{x-i}+\binom{x-1}{i}a^ib^{x-i}\big) \]

再上上面的递推式,我们得到了:

\[(a+b)^x=\sum_{i=0}^x\binom{x}{i}a^ib^{x-i} \]

证毕.

容斥原理

假设机房里每个人都喜欢打游戏,有 \(10\) 个人喜欢打floor,有15人喜欢打gen,有20人喜欢打saly.one,现在需要求出机房的总人数。

很显然,总人数并不是单纯的 \(10+15+20\),因为有的人可能喜欢玩多款游戏,现在设喜欢打floor的人的集合为 \(A\),同理其他两个是 \(B\)\(C\),那么总人数即为 \(A\cup B\cup C=|A|+|B|+|C|-|A \cap B|-|A\cap C|-|B\cap C|+|A\cap B \cap C|\),给个图更好理解:

image

据此,我们有容斥原理:

\[ \begin{split} \left|\bigcup_{i=1}^{n}S_i\right|=&\sum_{i}|S_i|-\sum_{i<j}|S_i\cap S_j|+\sum_{i<j<k}|S_i\cap S_j\cap S_k|-\cdots\\ &+(-1)^{m-1}\sum_{a_i<a_{i+1} }\left|\bigcap_{i=1}^{m}S_{a_i}\right|+\cdots+(-1)^{n-1}|S_1\cap\cdots\cap S_n| \end{split} \]

大概的意思就是枚举所有集合组成的整体的子集,按照子集大小确定前面的符号,下面证明容斥原理的正确性:

posted @ 2022-08-31 16:35  wapmhac  阅读(89)  评论(0编辑  收藏  举报