隐藏页面特效

卡特兰数&斯特林数

1|0卡特兰数


引入

不妨从找规律开始。
下标从0开始,卡特兰数的前几项为:

1,1,2,5,14,42,132,429,1430,4862,16796,58786,208012,742900,2674440,9694845,35357670,129644790…

那么通过认真的瞪眼观察,会发现它们满足递推关系。

关于

卡特兰数是一个很常见的数列。它并没有一个足够具体的意义,但诸多问题中都出现了与之相符的数学规律。
比起组合数的用形式规范问题,它更像是用诸多例子来勾勒出的形式。

下面根据几个实际的问题模型来讨论卡特兰数。

1|1通项公式


C(n)=(2nn)(2nn+1)

问题

  1. 给定n×n的网格图。问,从左下角走到右上角,且不越过x=y对角线的方案数。
等价问题
  1. n个左括号和n个右括号的括号匹配的方案数。
    括号匹配:任意前缀中,左括号数量不小于右括号数量。

  2. 1n依次入栈,可能的不同出栈序列数量。

  3. n个无编号节点构成的区别左右儿子的有根二叉树数量。

  4. 2n+1个无编号节点构成的左右儿子有区别的有根真二叉树数量。

证明:因为懒得写了(其实是不会),所以推荐参考%%%sto这篇otz%%%

变形

C(n)=1n+1(2nn)C(n)=1n+1i=0n(ni)2

1|2递推公式


对于n2,有:

C(n)=i=1nC(i1)C(ni)

问题

尤其是一些凸多边形问题

  1. 已知一个凸n边形,将其三角剖分,问可能的方案数。

  2. 已知一个凸n边形,在其顶点上插入钉子,在钉子间缠绕若干橡皮筋,问使橡皮筋不相交的方案数。

等价问题
  1. n个无编号节点构成的区别左右儿子的有根二叉树数量。

  2. 用若干个矩形构成n级楼梯,且每个矩形的右下角都作为一级楼梯的组成,问可能的方案数。

证明

类似动态规划中的转移方程,略。

另一个递推公式

C(n)=4n2n+1×C(n1)

2|0斯特林数


就是斯特林数。

2|1第一类斯特林数


记作s(n,m),或者[nm]
表示将n个不同元素划分为m个相同的非空轮换的方案数。

轮换:首尾相接的环形排列,例如[A,B,C,D]=[B,C,D,A]

性质

n!=i=0n[ni]

考虑等式左边表示排列数,右边表示轮换数。

一个排列可以唯一对应一个置换(也就是唯一对应一组轮换),故等式成立。

递推式

对于m>0,有:

[nm]={[n1m1],Case1(n1)×[n1m],Case2

特别地,

  • n>0,则[n0]=0
  • n=0,则[00]=0

通过考虑第n个元素的状况来推导:

Case1:第n个元素为单独的一个轮换。
Case2:第n个元素加入前面某个轮换,此时有n1种加入方式。

计算同行

构造出一行中斯特林数的生成函数。

Fn(x)=i=0n1(x+i)=(x+n1)!(x1)!

也就是xn次上升幂。

关于写这篇的时候,还不太会NTT,所以先放博客在这里,学会了回来补充细节,。

计算同列

类似求同行的办法,单个轮换的生成函数为:

F(x)=i=1n(i1)!xii!

2|2第二类斯特林数


记作S(n,m),或者{nm}
表示将n个不同的元素划分为m个相同非空集的方案数。

性质

nm=i=0mi!×{mi}(ni)

考虑等式左边表示m个不同元素放入n个不同集合
等式右边枚举非空集的数量为i,再i!区分非空集,然后把m个元素放入i个“相同”非空集。
故等式成立。

递推式

{nm}={n1m1}+m{n1m}

特别地,

  • n>0,则{n0}=0
  • n=0,则{00}=0

类似第一类斯特林数的递推式推导:
考虑第n个元素是否单独为一个非空集合。

通项公式

{nm}=1m!i=0m(1)k(mi)n(mi)

也就是:

{nm}=i=0m(1)miini!(mi)!

利用容斥原理。

枚举空集的数目i,剩下的集合可以随意放置。
考虑到集合相同,最后要除m!


__EOF__

本文作者Meteor2008
本文链接https://www.cnblogs.com/meteor2008/p/17882189.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   _kilo-meteor  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示