第一类斯特林数

隐身守侯 提交于 2020-10-23 05:39:34

两类斯特林数的其中之一 还是要了解一下的。

一般形如\(\left[\begin{matrix}n\\m\end{matrix}\right]\)写作\(s(n,k)\)

组合意义:\(s(n,k)\)表示把n个数分成k组 每组是一个环 求分成的方案数。

环的意思其实是类似于圆排列的东西。

递推式:\(s(n+1,k)=s(n,k-1)+s(n,k)\cdot n\)

有边界 \(s(0,0)=1\).

性质:\(s(n,1)=(n-1)!\) 这个看起来挺显然不正了 当然可以相当于圆排列来理解。

\(s(n,2)=(n-1)!\times\sum_{i=1}^{n-1}\frac{1}{i}\)这个利用数学归纳法也很好证。

\(\sum\limits_{i=0}^ns(n,k)=n!\)证明:求n个数的所有排列方案数n! 对于某种排列其中必然有k个置换 而置换就是我们上述所说的环的概念。

对于有k个置换的方案数 其为s(n,k)所以可以得到\(\sum\limits_{i=1}^ns(n,k)=n!\)因为s(n,0)=0所以原式成立。

这里先规定一下上升幂和下降幂。

定义下降幂为\(x^{\underline{n}} = x(x-1)\cdots (x-n+1).\)

上升幂为\(x^{\overline{n}} = x(x+1)\cdots (x+n-1).\)

有等式 \(\sum_{i=0}^ns(n,i)x^i=x^{\overline{n}}\)

上面那个还不够重要 再来一个\(x^{\underline{n}}=\sum_{i=0}^{n}\left[\begin{matrix}n\\i\end{matrix}\right](-1)^{n-i} x^i\)

证明 这个式子可以利用数学归纳法 上面那个也同理。

\(x^{\underline{n+1}}\\=x^{\underline{n}}\times (x-n)\\=(x-n)\sum\limits_{i=0}^{n}(-1)^{n-i}s_u(n,i)x^i\\=\sum\limits_{i=1}^{n+1}(-1)^{n+1-i}s_u(n,i-1)x^i+\sum\limits_{i=0}^{n}(-1)^{n+1-i}ns_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-i}s_u(n+1,i)x^i\\=\sum\limits_{i=0}^{n+1}(-1)^{n+1-i}s_u(n+1,i)x^i\)

\(s_u\)其实就是s了不过这里更严谨一点 表示的是无标号的第一类斯特林数。(有标号的不讨论 但是这里要做区分。

这个证明也比较简单 可以发现斯特林数和下降幂有关 也就是说我们求出下降幂的生成函数 其对应的系数的绝对值就是某一行的斯特林数。

很简便吧 我们可以更快的求斯特林数了。

可以考虑分治FFT 这样的话长度是递增的 每次合并两个多项式可以发现log层 每层FFT nlogn 总复杂度nlog^2

为了避免-1系数的一些问题 可以利用上升幂来求斯特林数 上面的公式也有提到 证明就不证了 数归即可。

\(f(x)=x^{\overline{n}},g(x)=(x+n)^{\overline{n}}\) 则有\(f(x)g(x)=x^{\overline{2n}}\)

\(f(x)=\sum_{i=0}^{n}a_ix^i,则g(x)=\sum_{i=0}^na_i(x+n)^i=\sum_{i=0}^n(\sum_{j=i}^nC(j,i)n^{j-i}a_j)x^i\)

倍增+NTT 可以做到nlogn.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!