Counting 1
作者:互联网
这一部分主要是讲一些数数的东西
主要就是打表发现规律再实现这一些内容
Part 1 计数的原理
1.加法原理 &乘法原理
假设一个人穿衣服,有两种穿法:
\(1.\)从\(n\)件大衣中选一件穿上
\(2.\)从\(x\)条毛衣中选一件,再从\(y\)件羽绒服上选一件穿
问1和2的方案数
对于1,每一件大衣都是独立的一类,应当用加法原理得出方案数为\(n\)
对于2:
法一:所有的\(x\)相互独立,首先可以对每一个\(x_i\)用加法原理得出为\(y\),然后再用加法原理得总数为\(xy\)
法二:显然的分步,直接乘法原理\(xy\)即可
加法原理适用于每一种决策都是独立的一类,乘法原理适用分步的情况
2.排列&组合
记\(A^n_m\)为\(m\)个数中选\(n\)个数组成排列的方案数
记\(C^n_m\)为\(m\)个数中选\(n\)个数组成组合的方案数
计算式:
\(A^m_n=\frac{n!}{(n-m)!}\)
\(C^m_n=\frac{n!}{m!(n-m)!}\)
算组合的时候,相同元素的不同排列视为同一种组合,这里容易出现算多或者算少的情况
注意可重与否,这里问题不大
3.容斥原理
可以画个\(Venn\)图方便理解一下
就是先找个全集,然后在全集里把不同情况划分成不同的集合,然后排除掉全集中不合法的集合
可能不合法的集合中某些集合存在交集,要把这些交集再加回来
可能上述多的交集里有些交集被加多了,然后再排除掉
......
容斥原理这一块答案多或少差不多都是多扣少扣这些,难以理解就画个\(Venn\)图
Part 2 特殊性质
1.二项式定理
\((a+b)^2=\sum\limits_{i=0}^{n} C^i_n a^{n-i} b^i\)
用这个式子可以出一些非常神仙的东西
2.组合数性质&二项式推论
1.\(C^m_n=C^{n-m}_n\)
把\(n\)选\(m\)变\(n\)排\(m\),都是等价的转化
如果发现\(n\)和\(m\)的差值为常数可以变形成\(n\)取常数的组合数然后再化简
2.\(C^k_n=\frac{n}{k}C^{k-1}_{n-1}\)
这里是用计算式导出的递推式
没见过这么用的,先记一下
3.\(C^k_n=C^{k}_{n-1}+C^{k-1}_{n-1}\)
杨辉三角
尝试用这玩意优化但是失败了
4.\(\sum\limits_{i=0}^{n} C^i_n =2^n\)
二项式定理:取\(a=b=1\)即可
这玩意是非常好用的,不过也没见到
5.\(\sum\limits_{i=0}^{n} (-1)^i C^i_n =[n=0]\)
二项式定理:取\(a=1,b=-1\)即可
特殊情况就是\(n=0\),原式为1
6.\(\sum\limits_{i=0}^{m} C^i_n C^{m-i}_m=C^{m+n}_{m},n\geqslant m\)
没见过,不太会证
好像是维护数据结构的一个非常快的东西
7.\(\sum\limits_{i=0}^{n} {C^i_n}^2 =C^{2n}_{n}\)
6的特殊情况,\(n=m\)时把后一项用1换掉就是这个式子
Part 3 常见类型处理
错排
\(f[n]=(n-1)(f[n-1]+f[n-2])\)
\(n-1\)递推,
第一种全部装错是\(f[n-1]\),第\(n\)项和前边随便换还是错排,乘法原理\((n-1)f[n-1]\)
第二种有一个对的是\((n-1)f[n-2]\)(分别让某一位对别的错就行),第\(n\)项和对的换就是错排,加法原理\((n-1)f[n-2]\)
再加法原理就是这个式子
圆排
断环成链有\(n\)种位置
所以1个圆排可以形成\(n\)个链排
直接用除法去重就是
\(Q^m_n=\frac{A^m_n}{m}=\frac{n!}{m·(n-m)!}\)
不相邻
\(C^k_{n-k+1}\)
标签:二项式,frac,limits,sum,加法,原理,Counting 来源: https://www.cnblogs.com/22222222STL/p/16248208.html