组合数学-二项式系数
组合数学-二项式系数
1.帕斯卡公式
分两种情况:
- 在前
个中已经选出 个; - 在前
个中选出 个,加上刚刚选的第 个。
可用于
2.组合恒等式
i.吸收恒等式
- Proof:
同理可得:
ii.对称恒等式
组合意义:
iii.上指标求和1
- Proof
iv.上指标求和2
组合意义:考虑
v.对角线求和
利用对称恒等式转化为上指标求和 1。
vi.组合数前缀和
设
vii.范德蒙德卷积
从
若
viii.格路计数
从
组合意义:总共要走
3.二项式定理
Theorem
组合意义:将原式全部拆开,对于
代数推导:数学归纳法。当
i.下指标求和1
组合意义:设
代数意义:二项式定理,
ii.下指标交错和
代数意义:原式化为
组合意义:在
iii.下指标求和2
代数推导:
4.不定方程整数解问题
Problem A.
现有
我们假设现在有
若要把这
对于每一种方案,我们就令
对于每一组解,我们令第
则解的个数就是插板方案数,即
Problem B.
现有
令
5.多重集合的排列与组合
首先引入多重集合的概念:
- 确定的、无序的、可重的集合。
由
Problem A.
现有一个多重集合
我们任意地取出
首先我们拿出
再拿出
依次进行下去,最后的答案即为:
展开二项式系数,进行约分即可。
Problem B.
现有一个多重集合
我们任意地取出
问题转化为不定方程非负整数解问题:
答案就是
6.二项式系数的单峰性
我们把
进一步地,若
我们把
若
若
若
讨论一下
7. 多项式系数
我们把二项式系数扩展到多项式系数:
我们有:
注意到它的值与 5.B 中多重集合排列问题的答案相等。
对于一种分割方案,我们考虑一个长度为
对于一种排列方案,我们把
帕斯卡公式
组合意义:考虑第
代数推导:
多项式定理
我们把
对展开后的式子合并同类项,最终不同的项会有
8.卢卡斯定理(Lucas)
Theorem
其中
也就是把
适用于
Proof
-
引理:若
为质数,则 。Proof:
- 将
利用二项式定理展开,得 。 - 利用吸收恒等式变形:
。 - 对于
, ,则有 。命题得证。
- 将
-
设
。问题转化为证明 。 即为 中 项的系数。由于
, 的系数也可表示为 。则有
,命题得证。
利用 Lucas 定理,可以在
void Init(){
fac[0]=caf[0]=1;
for(int i=1;i<p;i++) fac[i]=fac[i-1]*i%p;
caf[p-1]=QuickPow(fac[p-1],p-2);
for(int i=p-2;i;i--) caf[i]=caf[i+1]*(i+1)%p;
}
ll C(int x,int y){
if(x<y) return 0;
return fac[x]*caf[y]%p*caf[x-y]%p;
}
ll Lucas(int x,int y){
if(x<p&&y<p) return C(x,y);
else return Lucas(x/p,y/p)*C(x%p,y%p)%p;
}
9.阶乘的素数幂次
设
其中
将
我们从另一个角度来计算。用
其中
10.Kummer 定理
在
设进位次数为
于是得到
同理可得,
若
换句话说,如果在
由此可以快速判断
11.卡特兰数
对于一个长度为
这样的
求法 1
欲求出
对于一个不合法的数列
反转
对于一个含有
每一个
于是我们得到:
求法 2
那么如果我们移动过程中触碰到了
考虑类似于 "反射" 的转化:如果触碰到了
图中黑色折线为原路径,黄色折线为 “反射” 得到的直线。
那么不合法的走法有
卡特兰数的应用
- 长度为
的括号序列个数为 ; 个元素按顺序进栈,出栈序列的个数为 ; 个节点能够构造出 种不同的二叉树。- ...
卡特兰数还有递推形式:
卡特兰数的前
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现