【笔记】组合数学
不破不立,重新记
计数原理
加法原理
做一件事,有\(n\)类办法,第\(i\)类办法有\(m_i\)种不同的方法,做这件事总共有多少种方案?
我们设总方案数为\(N\),则\(N\)满足:
\( N = m_1+m_2+m_3+......+m_{n-1}+m_n \)
我们称此为加法原理
乘法原理
做一件事,需要完成\(n\)个子步骤,第\(i\)个子步骤有\(m_i\)种不同的方法,做这件事总共有多少种方案?
我们设总方案为\(N\),则\(N\)满足:
\( N = m_1\times m_2\times m_3\times ......\times m_{n-1}\times m_n \)
我们乘此为乘法原理
抽屉原理
有\(n+1\)个物品放入\(n\)个抽屉里,至少有一个抽屉里的物品放不少于\(2\)个物品。
如果每个抽屉代表一个集合,每一个物品就可以代表一个元素,假如有\(n+1\)个元素放到\(n\)个集合中去,其中必定有一个集合里至少有两个元素。
容斥原理
在计数时,必须注意没有重复,没有遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。---------百度百科。
要注意计数时没有重复没有遗漏,具体问题需要具体对待。
排列
排列数
有\(n\)个物品,从中取\(k\)个出来,方案数为多少?(若先后顺序不同,视为两种方案)
我们设方案数为\(A\),从\(n\)个物品里选\(k\)个的方案数为\(A^{k}_{n}\),则:
\(
A^{k}_{n}=n(n-1)(n-2)......(n-k+1)=\dfrac{n!}{(n-k)!}
\)
我们称\(A^{k}_{n}\)为从\(n\)个不同元素中取\(k\)个元素的排列数
注:\(m<=n\)
推导:
我们可以把取物过程分为\(k\)个步骤。
第一步,从\(n\)个物品中取走一个,有\(n\)种取法
第二步,从\(n-1\)个物品中取走一个,有\(n-1\)种取法
第\(i\)步,从\(n-i\)个物品中取走一个,有\(n-i\)种取法
第\(n-k+1\)步,从1个物品中取走一个,有1种取法
根据乘法原理,可得\(A^{k}_{n}=n(n-1)(n-2)......(n-k+1)=\dfrac{n!}{(n-k)!}\)
一个公式:
\(A^{k}_{n}\) + \(k*A^{k-1}_{n}\) = $A^{k}_{n+1} $
证明:
\(A^{k}_{n} + k*A^{k-1}_{n} = \dfrac{n!}{(n-k)!}+k * \dfrac{n!}{(n+1-k)!}\)
$= \dfrac{n!}{(n-k)!} * (1+ \dfrac{k}{(n+1-k)} ) $
$= \dfrac{n!}{(n-k)!}*\dfrac{n+1}{n+1-k} $
$= \dfrac{(n+1)!}{(n+1-k)!} = A^{k}_{n+1} $
圆排列
有\(n\)个物品,从中取\(k\)个出来并不分手尾的排列成一个圆,问方案数有多少?
\( A^{k}_{n}=\dfrac{n!}{(n-k)!\times k} \)
组合
组合数
有\(n\)个物品,从中取\(k\)个出来,方案数为多少?(若前后顺序不同,视为一种方案)
我们定义方案数为\(C_{n}^{k}\)或者\(\dbinom{n}{k}\)
我们称\(C_{n}^{k}\)或者\(\dbinom{n}{k}\)为从\(n\)个元素中取\(k\)个元素的组合数
注:此处\(k<=n\)
\(
C_{n}^{k}=\dbinom{n}{k}=\dfrac{n!}{k!(n-k)!}
\)
插板法
有\(n\)个小球,放入\(k\)个箱子里,要求每个箱子至少放入一个(\(n>=k\)),有多少种放法?
我们把\(n\)个小球排成一排,每两个小球之间会有一个空隙,共有\(n-1\)个空隙,我们把箱子当做隔板,插入到空隙里,只要插入\(k-1\)次就能把球分成\(k\)份。
所以总方案数为:
如果我们把"每个箱子至少放入一个小区"这样条件去掉,结果如何?
在上种情况的基础上,我们还可以把多个板子插在同一个空隙中,多了\(k\)个可以插的地方,所以答案为:
组合数的性质:
性质一:
实际意义:从\(n+m\)个元素中取\(n\)个元素的方案数,等于从中取\(m\)个元素剩下\(n\)个元素的方案数
性质二:
推导:
实际意义:从\(n\)个元素里选\(m\)个元素,每一个元素有选和不选两种情况,如果选,那么还要在剩下的\(n-1\)个元素中选\(m-1\)个元素;如果不选,那么还要在剩下的\(n-1\)个元素中选\(m-1\)个元素。两种情况是并列关系,根据加法原理,总方案数等于两种情况方案数之和。
性质三:
实际意义:在\(n\)个元素中选出任意个元素的方案数。
总共有\(n\)种元素,每种元素都有选和不选两种情况,根据乘法原理,总共有\(2^n\)种情况。
卢卡斯定理
Lucas 定理用于求解大组合数取模的问题,其中模数必须为素数。公式如下:
也可以写作
其中\(\%\)为\(mod\)运算,\(p\)为素数。特别的,\(Lucas(n,0)=1\)
卢卡斯定理一般应用于模数很大的情况下,若模数较小,则可以预处理\(1\)到\(p-1\)的阶乘和逆元进行优化。