Catalan&Stirling数
Catalan&Stirling数
Tags:数学
作业部落
评论地址
Catalan数
\(1,1,2,5,14,42,132,429,1430,4862,16796,58786...\)
定义式:
\[C[x+1]=C[0]C[x]+C[1]C[x-1]+C[2]C[x-2]...+C[x]C[0]\]
一、递推公式
\[C[n]=\frac{C[n-1]*(4*n-2)}{n+1}\]\[C[n]=\frac{C(2n,n)}{n+1}\]\[C[n]=C(2n,n)-C(2n,n-1)\]
二、应用举例
- 给定\(N\)个节点,能构成多少种不同的二叉树?(\(C[N]\)种,相当于钦定根之后左右子树有\(0..n\)中选择,用定义式解释)
- 售票处没有零钱,\(n\)个\(5\)元\(n\)个\(10\)元的人,多少种排列可以满足每次都可以给\(10\)元的找零?(\(C[n]\)种,出栈序列,用定义式解释)
- 在圆上选择\(2n\)个点,将这些点成对连接起来使得所得到的\(n\)条线段不相交的方法数?(\(C[n]\)种,相当于括号序列,左括号和右括号匹配,然后转化为出栈序列)
第一类Stirling数
此处只讨论无符号\(Stirling\)数
| s[n][k]) | k=0 | k=1 | k=2 | k=3 |
|---|---|---|---|---|
| n=0 | 1 | |||
| n=1 | 0 | 1 | ||
| n=2 | 0 | 1 | 1 | |
| n=3 | 0 | 2 | 3 | 1 |
| n=4 | 0 | 6 | 11 | 6 |
| n=5 | 0 | 24 | 50 | 35 |
| n=6 | 0 | 120 | 274 | 225 |
一、定义
s[n][k]表示将n个不同的元素构成k个圆排列的方案数
定义式为(\(x^{n↑}\)表示\(x\)的\(n\)次上升幂)\[x^{n↑} =x(x+1)(x+2)...(x+n-1)\\ =s[n][0]+s[n][1]*x+s[n][2]*x^2+...+s[n][n]*x^n\]
二、递推式
\[s[n][k]=s[n-1][k-1]+(n-1)*s[n-1][k]\]两种证明:
1、将第\(n+1\)个元素插入,那么可以新开一个圆\(+s[n][k-1]\),或者插入原来的圆中\(+n*s[n][k]\)
2、\(x^{(n+1)↑}=x^{n↑}*(x+n)\)通过这个式子得到
三、性质
dalao_blog
baike_baidu
\[s[1][1]=1,s[n][0]=s[n][k]=0,(n>0,k>n)\]\[s[n][1]=(n-1)!\]\[\sum_{k=0}^{n}s[n][k]=n!\]
可以做下这题:HN2018省队集训 6.25T2
第二类Stirling数
| S[n][k]) | k=0 | k=1 | k=2 | k=3 |
|---|---|---|---|---|
| n=0 | 1 | |||
| n=1 | 0 | 1 | ||
| n=2 | 0 | 1 | 1 | |
| n=3 | 0 | 1 | 3 | 1 |
| n=4 | 0 | 1 | 7 | 6 |
| n=5 | 0 | 1 | 15 | 25 |
| n=6 | 0 | 1 | 31 | 90 |
一、定义
表示n个有区别的球放入k个相同的盒子中的方案数
也就是将n个数拆成k个非空部分的方案数
二、递推式
\[S[n][k]=S[n-1][k-1]+k*S[n-1][k]\]意思为第\(n\)个球可以新开一个盒子也可以放在原来的盒子中
三、计算式
\[S[n][k]=\frac{1}{k!}[k^n-C[k][1](k-1)^n+C[k][2](k-2)^n-...+(-1)^{k-1}C[k][k-1]1^n]\]也就是\[S[n][k]=\frac{1}{k!}\sum_{i=0}^{k}(-1)^iC[k][i](k-i)^n\]把组合数给拆掉\[S[n][k]=\sum_{i=0}^{k}\frac{(-1)^i(k-i)^n}{i!(k-i)!}\]就化成了卷积的形式了,可以用\(NTT\)在\(O(nlogn)\)时间内求得\(S[n]\)
原理是把n个有区别的球放入k个有区别的盒子里的方案数是\(k!S[n][k]\),也是至少有0个空盒的方案数-至少有1个空盒的方案数+至少有两个空盒的方案数......属于组合数类型的容斥
四、拓展
1、把\(n\)个有区别的球放入\(k\)个有区别的盒子里不能有空盒的方案数
2、把\(n\)个无区别的球放入\(k\)个有区别的盒子里允许有空盒的方案数
前者是\(k!*S[n][k]\),表示盒子进行排列
后者是\(C(n+k-1,n)\),相当于在\(k\)中元素中取\(n\)个作为允许重复的组合,可重组合公式见《组合数学》\(P20\)
Catalan&Stirling数的更多相关文章
- 整理一点与排列组合有关的问题[组合数 Stirling数 Catalan数]
都是数学题 思维最重要,什么什么数都没用,DP直接乱搞(雾.. 参考LH课件,以及资料:http://daybreakcx.is-programmer.com/posts/17315.html 做到有 ...
- Stirling数,Bell数,Catalan数,Bernoulli数
组合数学的实质还是DP,但是从通式角度处理的话有利于FFT等的实现. 首先推荐$Candy?$的球划分问题集合: http://www.cnblogs.com/candy99/p/6400735.ht ...
- Bell数和Stirling数
前面说到了Catalan数,现在来了一个Bell数和Stirling数.什么是Bell数,什么是Stirling数呢?两者的关系如何,有用于解决什么算法问题呢? Bell数是以Bell这个人命名的,组 ...
- lightOJ 1326 Race(第二类Stirling数)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1326 题意:有n匹马赛跑.问有多少种不同的排名结果.可以有多匹马的排名相同. 思路:排 ...
- 斯特灵数 (Stirling数)
@维基百科 在组合数学,Stirling数可指两类数,都是由18世纪数学家James Stirling提出的. 第一类 s(4,2)=11 第一类Stirling数是有正负的,其绝对值是个元素的项目分 ...
- hdu 4372 第一类stirling数的应用/。。。好题
/** 大意: 给定一系列楼房,都在一条水平线上,高度从1到n,从左侧看能看到f个, 从右侧看,能看到b个,问有多少种这样的序列.. 思路: 因为肯定能看到最高的,,那我们先假定最高的楼房位置确定,那 ...
- HDU 3625 Examining the Rooms:第一类stirling数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3625 题意: 有n个房间,每个房间里放着一把钥匙,对应能开1到n号房间的门. 除了1号门,你可以踹开任 ...
- HDU 4372 Count the Buildings:第一类Stirling数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4372 题意: 有n栋高楼横着排成一排,各自的高度为1到n的一个排列. 从左边看可以看到f栋楼,从右边看 ...
- [总结] 第二类Stirling数
上一道例题 我们来介绍第二类Stirling数 定义 第二类Stirling数实际上是集合的一个拆分,表示将n个不同的元素拆分成m个集合的方案数,记为 或者 .和第一类Stirling数不同的是,集合 ...
随机推荐
- MySql EF6 DBFirst 向导无法生成 edmx 解决方法(同:您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库提供程序)
使用 MySql EF6 DBfirst 生成模型时经常会遇到EF6模式无法选择的情况究其原因, 还是因为没有正确的使用 Connector/Net. 下面说一下使用方法. 使用 MySql DBFi ...
- System.Web.Optimization对脚本和样式表的操作
这个也是本章重点向描述的部分,首先我们可以使用VS2012RC来新建一个MVC4.0项目,版本可以为4.0或4.5.在Global.asax文件代码中,我们发现已经把过滤器,路由器,以及对样式表和脚本 ...
- Linux ss命令详解
ss是Socket Statistics的缩写.顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容.ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息 ...
- 发现微信支付bug
第一张银行卡支付金额不足无法付款,选择另一张同样密码的银行卡,居然不用重新输入密码即可直接付款成功!
- centos7.4应用之KVM
最小安装系统: 参考博客:https://www.cnblogs.com/chenjiahe/p/5911965.html 辅助命令 yum install make bison flex autom ...
- September 04th 2017 Week 36th Monday
Try not to become a man of success but rather try to become a man of value. 不要努力去做一个成功的人,而要努力去做一个有价值 ...
- 【2017-01-08】QTimer与QThread的调度时间精度
在最近的项目开发中,我发现有的人喜欢用QThread来实现需要循环执行的工作流,而有的人又喜欢用QTimer来实现. 在表面上,两种实现方式似乎都可以,但我觉得QTimer的精度可能会有问题,首先看一 ...
- SDN上机第二次作业
SDN第二次上机作业 1.安装floodlight 参考链接:http://www.sdnlab.com/19189.html 2.生成拓扑并连接控制器floodlight,利用控制器floodlig ...
- Ubuntu 14.04安装QQ2012
GTkqq ,pidginQQ........等多多少少都存在一定的缺陷和问题. linuxQQ 有各种版本,这里介绍两种:linuxQQ(基本已不支持) 和 wineQQ (推荐使用) 1 ---- ...
- 学习python第五天进制转换
6.进制之间的转换(重要) 二进制:满二进一 范围:0.1符号:0b例如:0b10...[注意]计算机只能识别二进制数据 八进制:满八进一 范围:0~7符号:0o例如:0o66 十进制:满十进一 范围 ...