记xn‾=x(x+1)(x+2)⋯(x+n−1)x^{\overline{n}}=x(x+1)(x+2)\cdots(x+n-1)xn=x(x+1)(x+2)⋯(x+n−1),xn‾=x(x−1)(x−2)⋯(x−n+1)x^{\underline{n}}=x(x-1)(x-2)\cdots(x-n+1)xn​=x(x−1)(x−2)⋯(x−n+1)。

第一类斯特林数

定义为xn‾x^{\overline{n}}xn的mmm次项系数,即xn‾=∑i=0n[ni]xix^{\overline{n}}=\sum_{i=0}^n\begin{bmatrix}n\\i\end{bmatrix}x^ixn=∑i=0n​[ni​]xi。组合意义为将nnn个数分为mmm个无区别环的方案数。

可在O(nlog⁡n)O(n\log n)O(nlogn)内求[ni]\begin{bmatrix}n\\i\end{bmatrix}[ni​]。

第二类斯特林数

组合意义为将nnn个数分为mmm个无区别组的方案数。定义为xn=∑i=0n{ni}xi‾x^n=\sum_{i=0}^n\begin{Bmatrix}n\\i\end{Bmatrix}x^{\underline{i}}xn=∑i=0n​{ni​}xi​。

可以用容斥原理求斯特林数,枚举几个组为空即可。公式为{nm}=1m!∑i=0m(−1)i(mi)(m−i)n\begin{Bmatrix}n\\m\end{Bmatrix}=\frac{1}{m!}\sum_{i=0}^m(-1)^i\binom{m}{i}(m-i)^n{nm​}=m!1​i=0∑m​(−1)i(im​)(m−i)n容斥求出的组有区别,因此要除以阶乘。

枚举最后一个组含除了最后一个元素还有哪些元素,有公式{nm}=∑i=1n−1(n−1i−1){n−im−1}\begin{Bmatrix}n\\m\end{Bmatrix}=\sum_{i=1}^{n-1}\binom{n-1}{i-1}\begin{Bmatrix}n-i\\m-1\end{Bmatrix}{nm​}=i=1∑n−1​(i−1n−1​){n−im−1​}

幂的转换

由各种方法可得:
xn=∑i=0n{ni}xi‾(−1)n−ix^n=\sum_{i=0}^n\begin{Bmatrix}n\\i\end{Bmatrix}x^{\overline{i}}(-1)^{n-i}xn=i=0∑n​{ni​}xi(−1)n−ixn‾=∑i=0n[ni]xi(−1)n−ix^{\underline{n}}=\sum_{i=0}^n\begin{bmatrix}n\\i\end{bmatrix}x^i(-1)^{n-i}xn​=i=0∑n​[ni​]xi(−1)n−i
以上两个定义式和两个幂的转换公式可简记为正降卷升,一归二歧(“正”指挨个乘)。

把两个式子拼起来可得斯特林反演。把一个式子带到另一个里去可得翻转公式。口诀:正卷互推,减(卷)接等真。

*2018.12

练习题

幂和

∑i=1nik=∑i=1n∑j=0k{kj}ij‾=∑j=0k{kj}∑i=1nij‾=∑j=0k{kj}j!∑i=1n(ij)=∑j=0k{kj}j!(n+1j+1)\begin{aligned} \sum_{i=1}^n i^k &=\sum_{i=1}^n\sum_{j=0}^k \begin{Bmatrix}k\\j\end{Bmatrix}i^{\underline j}\\ &=\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}\sum_{i=1}^ni^{\underline j}\\ &=\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}j!\sum_{i=1}^n{i\choose j}\\ &=\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}j!{n+1\choose j+1}\\ \end{aligned}i=1∑n​ik​=i=1∑n​j=0∑k​{kj​}ij​=j=0∑k​{kj​}i=1∑n​ij​=j=0∑k​{kj​}j!i=1∑n​(ji​)=j=0∑k​{kj​}j!(j+1n+1​)​

合作

∑i=1n(ni)ik=∑i=1n(ni)∑j=0k{kj}ij‾=∑i=1nn!(n−i)!∑j=0k{kj}(i−j)!=∑j=0k{kj}∑i=1nn!(n−i)!(i−j)!\begin{aligned} \sum_{i=1}^n\binom{n}{i}i^k &=\sum_{i=1}^n\binom ni\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}i^{\underline j}\\ &=\sum_{i=1}^n\frac{n!}{(n-i)!}\sum_{j=0}^k\frac{\begin{Bmatrix}k\\j\end{Bmatrix}}{(i-j)!}\\ &=\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}\sum_{i=1}^n\frac{n!}{(n-i)!(i-j)!} \end{aligned}i=1∑n​(in​)ik​=i=1∑n​(in​)j=0∑k​{kj​}ij​=i=1∑n​(n−i)!n!​j=0∑k​(i−j)!{kj​}​=j=0∑k​{kj​}i=1∑n​(n−i)!(i−j)!n!​​两个含iii的阶乘在下面,考虑一次收俩。
=∑j=0k{kj}∑i=1nn!⋅(n−j)!(n−j)!⋅(n−i)!(i−j)!=∑j=0k{kj}n!(n−j)!∑i=1n(n−jn−i)=∑j=0k{kj}n!(n−j)!⋅2n−j\begin{aligned} &=\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}\sum_{i=1}^n\frac{n!\cdot(n-j)!}{(n-j)!\cdot(n-i)!(i-j)!}\\ &=\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}\frac{n!}{(n-j)!}\sum_{i=1}^n\binom{n-j}{n-i}\\ &=\sum_{j=0}^k\begin{Bmatrix}k\\j\end{Bmatrix}\frac{n!}{(n-j)!}\cdot 2^{n-j} \end{aligned}​=j=0∑k​{kj​}i=1∑n​(n−j)!⋅(n−i)!(i−j)!n!⋅(n−j)!​=j=0∑k​{kj​}(n−j)!n!​i=1∑n​(n−in−j​)=j=0∑k​{kj​}(n−j)!n!​⋅2n−j​

组合基础2 第一类斯特林数 第二类斯特林数 基础部分相关推荐

  1. 第一类斯特林数 / 第二类斯特林数 / 贝尔数 小结

    第一类斯特林数 有 nnn 个不同的小球,将它们串成 mmm 条项链,有多少种不同的方案? 第一类斯特林数的表示方法为 [nm]\left[\begin{matrix}n\\m\end{matrix} ...

  2. 第一类和第二类斯特林数

    第一类斯特林数 第一类斯特林数定义如下: \(s_1(n,k)\)表示\(n\)个元素组成\(k\)个圆排列的方案数. 其中\(n\)个元素的圆排列定义为\(n\)个元素围成一圈的排列,两个圆排列本质 ...

  3. [学习笔记]第一类/第二类斯特林数

    前置知识 · 组合数学基础 · 容斥原理 · 生成函数 · FFT/NTT · 多项式exp,多项式ln,多项式快速幂,多项式平移 一些规定 · 下降幂 xn‾=∏i=1n(x−i+1)x^{\und ...

  4. 【组合数学】第一类,第二类斯特林数(Stirling),Bell数

    第一类斯特林数 定理: 第一类斯特林数S1(p,k)计数的是把p个对象排成k个非空循环排列的方法数. 证明:把上述定理叙述中的循环排列叫做圆圈 递推公式: S1(p,p)=1(p>=0),有p个 ...

  5. 新疆大学(新大)OJ xju 1006: 比赛排名 第二类斯特林数+阶乘

    题目链接:http://acm.xju.edu.cn/JudgeOnline/problem.php?id=1006 第二类斯特林数: 第二类Stirling数实际上是集合的一个拆分,表示将n个不同的 ...

  6. 第二类Stirling数(第二类斯特林数)

    第二类Stirling数(第二类斯特林数) 定义 第二类Stirling数表示把nnn个不同的数划分为mmm个集合的方案数,要求不能为空集,写作S(n,m)S(n,m)S(n,m). 和第一类Stir ...

  7. 【组合数学】第二类斯特林数

    一.定义 第二类Stirling数即:,又可记为[与第一类的表示有大小写的区别].其表示将n个不同的元素分成m个集合的方案数. 二.理解关键词句 1.集合的一个拆分(表示将n个不同的元素拆分成m个集合 ...

  8. 第二类斯特林数与自然数幂和

    一般求法 一般求自然数幂和都会用到拉格朗日插值法,但仅当存在逆元的时候能用,给出一种用第二类斯特林数求自然数幂和的方法,时间复杂度是O(k2)O(k2)O(k^2)而不是O(k log k)O(klo ...

  9. 第二类斯特林数学习笔记

    第二类斯特林数 定义 第二类斯特林数 S(n,m)S(n,m)S(n,m) 表示将 nnn 个不同的小球放到 mmm 个相同的盒子里的方案数.S(n,m)S(n,m)S(n,m) 也可以用 {nm}\ ...

最新文章

  1. getResources().getIdentifier(textView01, id, cn.xxx.xxx);
  2. 儿童机器人慧昱科教获6000万元A轮融资,海尔资本领投
  3. 添加github ssh 公钥
  4. 记事本状态栏不会自动_如何在记事本中同时启用状态栏和自动换行
  5. MATLAB的size、length函数
  6. linux中sudo命令_Linux中的Sudo命令
  7. Spring框架最终注解标签注入方法
  8. c语言字符型211,C语言简单的字符驱动程序介绍
  9. c++ *p++ (*p)++ ++(*p)详细实战解读
  10. 计算机网络结构示意图,常用的计算机网络拓扑结构
  11. Edge在IE模式下加载网页 - Edge设置IE兼容性
  12. 使用简短JS事件代码实现原生北京时间时钟
  13. 【记录一次windows技术学习】使用笔记本DOS命令搭建WLAN热点
  14. 伪类选择器编写顺序以及注意事项
  15. c++ 计算正弦的近似值_C语言中计算正弦的相关函数总结
  16. 最大值最小值计算机一级,Excel2019中突出数据最大值和最小值的方法详解
  17. Hidden Message
  18. 智能工厂:怎样服装ERP软件的价格距离这么大?
  19. NVIDIA最新的Cumulus Linux4.4发布了
  20. 计算机毕业设计JAVA高校固定资产管理系统mybatis+源码+调试部署+系统+数据库+lw

热门文章

  1. 程序员面试搞笑问答,你遇见过吗?
  2. Python实现12306购票程序
  3. Android环境安装与配置
  4. 使用json注解,从后端返回正确时间格式给前端
  5. Oracle数据库同步复制工具Beedup产品功能(一)
  6. QT,QT/E,Qtopia,qt creator的联系与区别
  7. 七夕节的习俗有哪些?
  8. sh^M:bad interpreter:解决方法
  9. java转网络字节序_【转】网络字节序与主机字节序
  10. iOS【Flutter「发布预览版 2」让 iOS 应用至臻完美】