博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
斯特林数-斯特林反演
阅读量:5982 次
发布时间:2019-06-20

本文共 3567 字,大约阅读时间需要 11 分钟。

斯特林数

定义:

自行百度

递推式:

\[ \begin{Bmatrix}n\\k \end{Bmatrix}=\begin{Bmatrix}n-1\\k-1\end{Bmatrix}+k\cdot \begin{Bmatrix}n-1\\k \end{Bmatrix}\\ \begin{bmatrix}n\\k \end{bmatrix}=\begin{bmatrix}n-1\\k-1 \end{bmatrix}+(n-1)\cdot \begin{bmatrix}n-1\\k \end{bmatrix} \]

第二类斯特林数

一个组合数意义清晰的式子:

\[ \displaystyle n^m=\sum_{k=0}^m\begin {Bmatrix}m\\k \end{Bmatrix}C_n^kk!\\ \]
通过二项式反演的得到(这里是将m看作一个常数):
\[ k!\begin {Bmatrix}m\\k \end{Bmatrix}=\sum_{i=0}^k(-1)^{k-i}C_k^ii^m\\ \]
上述式子用容斥原理也很好理解。

我们还可以将上述的式子化为卷积的形式:

\[ \begin{align} \begin {Bmatrix}m\\k \end{Bmatrix}&=\frac{1}{k!}\sum_{i=0}^k(-1)^{k-i}\frac{k!}{i!(k-i)!}i^m\\ &=\sum_{i=0}^k\frac{(-1)^{k-i}}{(k-i)!}\frac{i^m}{i!}\\ \end{align} \]

第二类斯特林数的应用:


斯特林数与阶乘幂之间的关系:

第二类斯特林数与下降阶乘幂的关系:

\[ C_n^kk!=n^{\underline k}\\ 所以:\displaystyle n^m=\sum_{k=0}^m\begin {Bmatrix}m\\k \end{Bmatrix}C_n^kk!=\sum_{k=0}^m\begin {Bmatrix}m\\k \end{Bmatrix}n^{\underline k}\\ \]

当然也有第一类斯特林数与上升阶乘幂的关系:

\[ \displaystyle x^{\overline{n}}=\sum_k \begin{bmatrix}n\\k \end{bmatrix}x^k \]

证明使用数学归纳法证明的:

首先我们有\((x+n-1)\cdot x^k=x^{k+1}+(n-1)x^k\)

所以:

\[ \begin{align} \displaystyle x^{\overline{n}}&=(x+n-1)x^{\overline{n-1}}\\ &=(x+n-1)\sum_k \begin{bmatrix}n-1\\k \end{bmatrix}x^k\\ &=\sum_k \begin{bmatrix}n-1\\k \end{bmatrix}x^{k+1}+\sum_k \begin{bmatrix}n-1\\k \end{bmatrix}x^k (n-1)\\ &=\sum_k \begin{bmatrix}n-1\\k-1 \end{bmatrix}x^{k}+\sum_k \begin{bmatrix}n-1\\k \end{bmatrix}x^k (n-1)\\ &=\sum_k x^k (\begin{bmatrix} n-1\\k-1\end{bmatrix}+(n-1)\begin{bmatrix}n-1\\k\end{bmatrix})\\ &=\sum_k x^k\begin{bmatrix}n\\k\end{bmatrix} \end{align} \]


斯特林反演:

\[ \displaystyle f(n)=\sum_{k=0}^n \begin{Bmatrix}n\\k \end{Bmatrix}g(k) \Longleftrightarrow g(n)=\sum_{k=0}^n(-1)^{n-k}\begin {bmatrix} n\\k \end{bmatrix}f(k) \]

首先我们要证明一个叫反转公式的东西:

\[ \displaystyle \sum_{k=m}^n (-1)^{n-k}\begin{bmatrix}n\\k\end{bmatrix} \begin{Bmatrix}k\\m\end{Bmatrix}=[m=n]\\ \sum_{k=m}^n (-1)^{n-k}\begin{Bmatrix}n\\k\end{Bmatrix} \begin{bmatrix}k\\m\end{bmatrix}=[m=n] \]

在这之前,我们先考虑如何建立上升阶乘幂与下降阶乘幂之间的关系。

先给出结论:

\[ x^{\underline{n}}=(-1)^n(-x)^{\overline{n}}\\ x^{\overline{n}}=(-1)^n(-x)^{\underline{n}} \]
证明:
\[ \begin{align} (-1)^n(-x)^{\overline{n}}&=(-1)^n(-x)(-x+1)...(-x+n-1)\\ &=(-1)^n(-x)(-(x-1))...(-(x-n+1))\\ &=x(x-1)...(x-n+1)=x^{\underline{n}} \end{align} \]
对于\(x^{\overline{n}}=(-1)^n(-x)^{\underline{n}}\)证明方法相同。
\[ \begin{align} \displaystyle n^m&=\sum_{k=0}^{m}\begin{Bmatrix}m\\k\end{Bmatrix}n^{\underline{k}}\\ &=\sum_{k=0}^{m}\begin{Bmatrix}m\\k\end{Bmatrix}(-1)^k(-n)^{\overline{k}} \end{align} \]
将下式带入:
\[ \displaystyle x^{\overline{n}}=\sum_k \begin{bmatrix}n\\k \end{bmatrix}x^k \]
得:
\[ \begin{align} \displaystyle n^m&=\sum_{k=0}^{m}\begin{Bmatrix}m\\k\end{Bmatrix}(-1)^k(-n)^{\overline{k}}\\ &=\sum_{k=0}^{m}\begin{Bmatrix}m\\k\end{Bmatrix}(-1)^k\sum_{j=0}^k\begin{bmatrix}k\\j\end{bmatrix}(-n)^j\\ &=\sum_{j=0}^mn^j\sum_{k=j}^{m}\begin{Bmatrix}m\\k\end{Bmatrix}\begin{bmatrix}k\\j\end{bmatrix}(-1)^{k-j} \end{align} \]
于是我们就得到了一个反转公式,另一个证明方法类似,反过来带入就可以了。
\[ \sum_{k=j}^m\begin{Bmatrix}m\\k\end{Bmatrix}\begin{bmatrix}k\\j\end{bmatrix}(-1)^{k-j}=[j=m] \]
然后我们就可以证明斯特林反演了:
\[ \begin{align} \displaystyle 若满足g(n)&=\sum_{j=0}^n(-1)^{n-j}\begin{bmatrix}n\\j\end{bmatrix}f(j)\\ 则f(n)&=\sum_{j=0}^n[j==n]f(j)\\ &=\sum_{j=0}^n\sum_{k=j}^n\begin{Bmatrix}n\\k\end{Bmatrix}\begin{bmatrix}k\\j\end{bmatrix}(-1)^{k-j}f(j)\\ &=\sum_{k=0}^n\begin{Bmatrix}n\\k\end{Bmatrix}\sum_{j=0}^k(-1)^{k-j}\begin{bmatrix}k\\j\end{bmatrix}f(j)\\ &=\sum_{k=0}^n\begin{Bmatrix}n\\k\end{Bmatrix}g(k) \end{align} \]

例题:

转载于:https://www.cnblogs.com/hchhch233/p/10016543.html

你可能感兴趣的文章
《可穿戴创意设计:技术与时尚的融合》一一第2章 与可穿戴设备有关的故事...
查看>>
ruby动态new对象
查看>>
Linux中grep命令的12个实践例子
查看>>
使用Docker Compose部署基于Sentinel的高可用Redis集群
查看>>
Mybatis 3学习笔记(一)
查看>>
Guice系列之用户指南(十)
查看>>
树与森林的存储、遍历和树与森林的转换
查看>>
Android自定义属性
查看>>
Visual C#之核心语言
查看>>
代码重构(五):继承关系重构规则
查看>>
Windows App开发之集合控件与数据绑定
查看>>
中大型网站技术架构演变过程
查看>>
ARTS训练第三周
查看>>
vue中v-for循环如何将变量带入class的属性名中
查看>>
phpstorm xdebug remote配置
查看>>
引用与指针的区别
查看>>
pygtk笔记--2.1:布局容器,VBox、Hbox、Alignment
查看>>
dtree.js树的使用
查看>>
Springboot2.1.3 + redis 实现 cache序列化乱码问题
查看>>
线程什么时候需要同步,什么时候不需要同步?
查看>>