斯特林数相关
Posted forwardfuture
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了斯特林数相关相关的知识,希望对你有一定的参考价值。
最近做题时发现斯特林数这一块不怎么成系统,于是从各路神仙的博客里学习了一下,因此也就有了这篇博客
主要学习了这位神仙的博客:第二类斯特林数总结
第二类斯特林数
第二类斯特林数 \\(\\beginBmatrixn\\\\i\\endBmatrix\\) 代表将 \\(n\\) 个元素划分到 \\(i\\) 个集合里的方案数,也可以理解为将 \\(n\\) 个不同的小球放入 \\(i\\) 个相同的盒子里的方案数,递推公式为
\\[
\\beginBmatrixn\\\\i\\endBmatrix=\\beginBmatrixn-1\\\\i-1\\endBmatrix+i\\times \\beginBmatrixn-1\\\\i\\endBmatrix\\tag1.1
\\]
即讨论第 \\(n\\) 个元素是放进已有的 \\(i\\) 个盒子里还是放到一个新盒子里
直接递推求是 \\(O(n^2)\\) 的,但我们还有一个等式
\\[
n^m=\\sum\\limits_i=0^n\\beginBmatrixm\\\\i\\endBmatrixi!\\dbinomni\\tag1.2
\\]
二项式反演一下得到
\\[
\\beginBmatrixm\\\\n\\endBmatrix=\\frac1n!\\sum\\limits_i=0^n(-1)^n-i\\dbinomnii^m\\tag1.3
\\]
然后就能 \\(\\textFFT\\) 了
其实式 \\((1.3)\\) 也可以从容斥的角度思考,其中 \\(\\dbinomni\\) 是选择 \\(i\\) 个盒子必须为空的方案数,而又因为这些计算都是在盒子不同的基础上进行的,所以最后还要除以 \\(n!\\) 消去有序性
另外,对于式 \\((1.2)\\) ,我们也可以将其写成
\\[
n^m=\\sum\\limits_i=0^m\\beginBmatrixm\\\\i\\endBmatrixn^\\underlinei\\tag1.4
\\]
我们将在下面看到这个等式的用途
第一类斯特林数
第一类斯特林数分为有符号和无符号两种,设 \\(s_s\\) 表示有符号第一类斯特林数,\\(s_u\\) 为无符号第一类斯特林数,两者的关系为 \\(s_s(n,m)=(-1)^n+ms_u(n,m)\\)
在这里我们重点讨论无符号第一类斯特林数
无符号第一类斯特林数 \\(\\beginbmatrixn\\\\i\\endbmatrix\\) 的含义为将 \\(n\\) 个元素分到 \\(i\\) 个圆排列中的方案数,递推公式为
\\[
\\beginbmatrixn\\\\i\\endbmatrix=\\beginbmatrixn-1\\\\i-1\\endbmatrix+(n-1)\\times \\beginbmatrixn-1\\\\i\\endbmatrix\\tag2.1
\\]
即考虑在已有的 \\(n-1\\) 个元素中的一侧插入第 \\(n\\) 个元素扩大圆排列或单独把第 \\(n\\) 个元素作为一个圆排列
它有一些不错的性质
\\[
\\sum\\limits_i=0^n\\beginbmatrixn\\\\i\\endbmatrix=n!\\tag2.2
\\]
以及
\\[
\\beginbmatrixn\\\\1\\endbmatrix=(n-1)!\\tag2.3
\\]
对于式 \\((2.2)\\) ,左边的式子其实在枚举由 \\(i\\) 个循环组成的置换的个数,而 \\(n\\) 个元素的排列与置换一一对应,那么显然等式成立
对于式 \\((2.3)\\) ,我们考虑展开 \\(\\beginbmatrixn\\\\1\\endbmatrix\\):
\\[
\\beginbmatrixn\\\\1\\endbmatrix=(n-1)\\beginbmatrixn-1\\\\1\\endbmatrix=(n-1)(n-2)\\beginbmatrixn-2\\\\1\\endbmatrix=...=(n-1)!\\tag2.4
\\]
其中展开出来的 \\(\\beginbmatrixn\\\\0\\endbmatrix\\) 因等于 \\(0\\) 而被舍弃
类似于式 \\((1.4)\\),第一类斯特林数也有类似的等式
\\[
\\sum\\limits_i=0^ns_u(n,i)x^i=x^\\overlinen\\tag2.5
\\]
与
\\[
\\sum\\limits_i=0^ns_s(n,i)x^i=x^\\underlinen\\tag2.6
\\]
根据 \\(s_s\\) 与 \\(s_u\\) 的关系,式 \\((2.6)\\) 也可以写为
\\[
\\sum\\limits_i=0^n(-1)^n-is_u(n,i)x^i=x^\\underlinen\\tag2.7
\\]
用数学归纳法证明式 \\((2.7)\\) :
\\[
x^\\underlinen+1\\\\=x^\\underlinen\\times (x-n)\\\\=(x-n)\\sum\\limits_i=0^n(-1)^n-is_u(n,i)x^i\\\\=\\sum\\limits_i=1^n+1(-1)^n+1-is_u(n,i-1)x^i+\\sum\\limits_i=0^n(-1)^n+1-ins_u(n,i)x^i\\\\=s_u(n+1,n+1)x^n+1+\\sum\\limits_i=0^n(-1)^n+1-i(s_u(n,i-1)+ns_u(n,i))x^i\\\\=s_u(n+1,n+1)x^n+1+\\sum\\limits_i=0^n(-1)^n+1-is_u(n+1,i)x^i\\\\=\\sum\\limits_i=0^n+1(-1)^n+1-is_u(n+1,i)x^i
\\]
那么对于式 \\((2.5)\\) 同理也可证明
从另一个角度来看,\\(x^\\overlinen\\) 和 \\(x^\\underlinen\\) 分别可看作无符号第一类斯特林数 \\(s_u\\) 与有符号第一类斯特林数的 \\(s_s\\) 的生成函数的封闭形式
斯特林反演
斯特林反演说的是这样一件事情:有两个数列 \\(\\f_n\\\\) ,\\(\\g_n\\\\) ,那么若有
\\[
f_n=\\sum\\limits_i=0^n\\beginBmatrixn\\\\i\\endBmatrixg_i\\tag3.1
\\]
就有
\\[
g_n=\\sum\\limits_i=0^n(-1)^n-i\\beginbmatrixn\\\\i\\endbmatrixf_i\\tag3.2
\\]
有了上面的一些推导我们就不难证明其正确性了
由式 \\((1.4)\\) 与式 \\((2.7)\\) 可知,若令 \\(f_i=x^i\\),\\(g_i=x^\\underlinei\\) ,那么显然上面的关系成立,那么有
\\[
F=A\\times G,G=B\\times F\\tag3.3
\\]
即
\\[
F=A\\times B\\times F\\tag3.4
\\]
可以看出 \\(A\\times B=I\\) ,即 \\(A=B^-1\\)
说明 \\(a_n,i=\\beginBmatrixn\\\\i\\endBmatrix\\) 构成的矩阵与 \\(b_n,i=(-1)^n-i\\beginbmatrixn\\\\i\\endbmatrix\\) 构成的矩阵互逆
那么对于任意的 \\(f_n\\) 与 \\(g_n\\) ,上述关系一定也还成立
而如果我们暴力将式 \\((2.7)\\) 代入式 \\((1.4)\\) 中,也可以得到同样的结论:
\\[
n^m\\\\=\\sum\\limits_i=0^m\\beginBmatrixm\\\\i\\endBmatrixn^\\underlinei\\\\=\\sum\\limits_i=0^m\\beginBmatrixm\\\\i\\endBmatrix\\sum\\limits_j=0^i(-1)^i-j\\beginbmatrixi\\\\j\\endbmatrixn^j\\\\=\\sum\\limits_i=0^mn^i\\sum\\limits_j=i^m(-1)^j-i\\beginbmatrixj\\\\i\\endbmatrix\\beginBmatrixm\\\\j\\endBmatrix
\\]
那么显然有
\\[
[i==m]=\\sum\\limits_j=i^m(-1)^j-i\\beginbmatrixj\\\\i\\endbmatrix\\beginBmatrixm\\\\j\\endBmatrix\\tag3.5
\\]
即说明 \\(a_n,i=\\beginBmatrixn\\\\i\\endBmatrix\\) 构成的矩阵与 \\(b_n,i=(-1)^n-i\\beginbmatrixn\\\\i\\endbmatrix\\) 构成的矩阵互逆
当然第一类斯特林数也可以反演到第二类斯特林数,只不过可能要依据 \\(i\\) 与 \\(m\\) 的奇偶性改一改 \\(-1\\) 的指数
如果有写的不到位的地方我会再补充一点...
以上是关于斯特林数相关的主要内容,如果未能解决你的问题,请参考以下文章