【科技】 数数(组合数学)
今天终于开坑了,开始学数数。
基本原理
加法原理:对于一件事,有 \(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}\).
二项式定理
定义在整数域上的二项式定理:
因此组合数也叫二项式系数.
证明:
首先引出一个组合数的递推式:
从组合意义上来理解:对于某一件物品分类讨论,当这件物品被选择时,就要在剩下的 \(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}\).
那么
由于当 \(i=x\) 和 \(i=0\) 时都有一个式子是 \(0\),所以可以写成:
再上上面的递推式,我们得到了:
证毕.
容斥原理
假设机房里每个人都喜欢打游戏,有 \(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|\),给个图更好理解:
据此,我们有容斥原理:
大概的意思就是枚举所有集合组成的整体的子集,按照子集大小确定前面的符号,下面证明容斥原理的正确性: