排列:
(1)从n个互不相同的元素中选取r个元素进行排列,总的方案数为。
(2)从n个互不相同的元素中选取r个元素进行圆排列,总的方案数为【构成环的排列旋转一周也相等】。
组合:
从n个互不相同的元素里选取r个元素,总的方案数为。
二项式定理:
。
推论一: 。
证明:
二者展开累加结果/2即为所求结果。
推论二:。
对两边求导再同乘x,即可得。
以此类推......
鸽巢(抽屉)原理:
n+1个物品随即放到n个抽屉中,那么肯定会有一个抽屉有至少两个物品。
思考:k个书架,放n本相同的书,有多少种放法?
解法:挡板原理。
我们可以用k-1个书架隔板和n本相同的书合在一起做排列,若两个隔板间没有书则表示这两个隔板表示的书架上不放书。排列的方案数为(n+k-1)!。此时,由于隔板是相同的,所以结果为(n+k-1)!/((n)!(k-1)!)=。
多重集:
无限多重集:有n种元素,每种元素无限多。
有限多重集:有n种元素,第i种元素有ki个。
多重集的排列:
(1)a1,a2......an各不相同,并且均有无穷多个,则选取r个元素形成排列的方案数为。
(2)a1,a2......an各不相同,并且各有ki个,如果ki>r,则选取r个元素形成排列的方案数为。
(3)a1,a2......an各不相同,并且各有ki个,则全部元素形成的全排列方案数为(k1+k2+......+kn)!/(k1!k2!......kn!)。
(4)a1,a2......an各不相同,并且各有ki个,现从中选取r个元素,当至少存在一个ki<r时,排列数为:。
多重集的组合:
(1)a1,a2......an各不相同,并且均有无穷多个,则选取r个元素形成组合的方案数为。
证明:最终选取的集合一定会呈现出s={x1*a1,x2*a2,......xn*an),x1+x2+......+xn=r,挡板原理,我们要划分出r个部分【为了知道具体xi的值而进行划分】,因此要加入k-1个挡板,总的划分情况为(r+k-1)!,然后由于是组合,所以是无序的,因此还要对结果除去全排列的情况,最终结果为。
(2)a1,a2......an各不相同,并且均各有ki个,如果ki>r,则选取r个元素的方案数为。
(3)a1,a2......an各不相同,并且各有ki个,现从中选取r个元素,当至少存在一个ki<r时,组合数通过容斥定理或母函数求得。
排列数公式:
(1)。
证明-球模型按步递推:
要求的是从n个球中取出r个球放到r个不同的盒子里,问方案总数。我们可以按照步骤来递推,第一个位置有n种选择,剩余的部分为,根据乘法法则可证明正确性。
(2)。
证明-球模型按类推导:
要求的是从n个球中取出r个球放到r个不同的盒子里,问方案总数。我们将情况分成两种:
(A)放入的球不包括第一种球的方案数为。
(B)放入的球必须包括第一种球,则剩下部分的排列方案数为,而参与排列的第一种球有r个位置可选,因此总的方案数为
。
组合数公式:
(1)。从n个物品中选出m个,可以去掉一个在剩下的n-1个种选取m个,也可以选定一个,在剩下的n-1个种选取m-1个。
(2)。
(3)。
杨辉三角的各种奇怪性质(待更新):
卢卡斯定理:对于非负整数m,n(m>=n)和素数p,同余式
,也就是把m和n按照p进制分解。
基于卢卡斯定理的推论:为奇数->n&m=n。
简略证明:为奇数->
%2==1。由于2是素数,我们可以基于卢卡斯定理进行连乘分解,于是
仅仅可能为
、
、
,于是连乘分解后所有的小部分都为1。
lucas板子:
long long F[100010];//阶乘数组
long long Mod=1e9+7;
void inif(long long p){//阶乘预处理
F[0]=1;
for(int i=1;i<=p;i++){
F[i]=F[i-1]*i%Mod;
}
}
long long inv(long long a,long long m){//求逆元
if(a==1)return 1;
return inv(m%a,m)*(m-m/a)%m;
}
long long Lucas(long long n,long long m,long long p){//卢卡斯定理求组合数
long long ans=1;
while(n&&m){//其中任意一个为0 直接结束
long long a=n%p;
long long b=m%p;
if(a<b)return 0;
ans=ans*F[a]%p*inv(F[b]*F[a-b]%p,p)%p;//
n/=p;
m/=p;
}
return ans;
}