自然数幂求和——第二类Strling数
这个问题似乎有很多种求法,但感觉上第二类Strling数的做法是最方便的。
问题
求下面这个式子:
∑i=0nik\sum_{i=0}^n i^ki=0∑nik
nnn的范围可以很大。
第二类Strling数
第二类Strling数记作S(n,m)S(n,m)S(n,m)、SnmS_n^mSnm。
定义:将nnn个相同的球放在mmm个不同的箱子里的方案数(其中的每一个箱子至少有一个球)。
很容易推出一个式子:Snm=Sn−1m−1+mSn−1mS_n^m=S_{n-1}^{m-1}+mS_{n-1}^mSnm=Sn−1m−1+mSn−1m。不解释。
有个通项公式,但是我不会推……不过在处理这个问题的时候用不着。
一个性质
ak=∑i=0kSkii!Caia^k=\sum_{i=0}^kS_k^i i! C_a^iak=i=0∑kSkii!Cai
如果直接理性地证明可能不容易,所以在这里通过它的定义来推理一下:
对于等式左边,相当于kkk个不同的球放在aaa个不同的箱子里。
对于等式右边,先枚举非空箱子的个数,SkiS_k^iSki表示kkk个不同的球放在iii个相同的箱子里。乘上i!i!i!相当于放在不同的箱子里,再乘上非空箱子的选法CaiC_a^iCai。
当然这条式子也可以化成:
∑i=0kSki∏j=a−i+1aj\sum_{i=0}^kS_k^i \prod_{j=a-i+1}^a ji=0∑kSkij=a−i+1∏aj
推理
先把结论放在前面:
∑i=0nik=∑i=0kSki∏j=n−i+1n+1ji+1\sum_{i=0}^n i^k=\sum_{i=0}^k\frac{S_k^i\prod_{j=n-i+1}^{n+1}j}{i+1}i=0∑nik=i=0∑ki+1Ski∏j=n−i+1n+1j
证明如下:
∑i=0nik=∑a=0n∑i=0kSkii!Cai=∑i=0kSkii!∑a=0nCai\sum_{i=0}^n i^k \\
=\sum_{a=0}^n\sum_{i=0}^kS_k^i i! C_a^i \\
=\sum_{i=0}^kS_k^i i!\sum_{a=0}^nC_a^i i=0∑nik=a=0∑ni=0∑kSkii!Cai=i=0∑kSkii!a=0∑nCai
因为a<ia<ia<i时Cai=0C_a^i=0Cai=0,所以
=∑i=0kSkii!∑a=inCai=\sum_{i=0}^kS_k^i i!\sum_{a=i}^nC_a^i=i=0∑kSkii!a=i∑nCai
由Cmn=Cm−1n−1+Cm−1nC_m^n =C_{m-1}^{n-1}+C_{m-1}^nCmn=Cm−1n−1+Cm−1n得
∑a=inCai=Cii+Ci+1i+⋯+Cni=Cii+1+Cii+Ci+1i+⋯+Cni=Ci+1i+1+Ci+1i+⋯+Cni⋯=Cn+1i+1\sum_{a=i}^nC_a^i=C_i^i+C_{i+1}^i+\cdots +C_n^i \\
=C_i^{i+1}+C_i^i+C_{i+1}^i+\cdots +C_n^i \\
=C_{i+1}^{i+1}+C_{i+1}^i+\cdots +C_n^i \\
\cdots \\
=C_{n+1}^{i+1}
a=i∑nCai=Cii+Ci+1i+⋯+Cni=Cii+1+Cii+Ci+1i+⋯+Cni=Ci+1i+1+Ci+1i+⋯+Cni⋯=Cn+1i+1
所以原式又可以化成下面这样:
=∑i=0kSkii!Cn+1i+1=∑i=0kSki∏j=n−i+1n+1ji+1=\sum_{i=0}^kS_k^i i!C_{n+1}^{i+1} \\
=\sum_{i=0}^k\frac{S_k^i\prod_{j=n-i+1}^{n+1}j}{i+1}=i=0∑kSkii!Cn+1i+1=i=0∑ki+1Ski∏j=n−i+1n+1j
这样式子就推完了。
自然数幂求和——第二类Strling数的更多相关文章
- HDU 4045 Machine scheduling --第二类Strling数
题意: n个数(1~n)取出r个数,取出的数相差要>=k, 然后分成m个可空组,问有多少种情况. 解法: 先看从n个数中取r个相差>=k的数的方法数,可以发现 dp[i][j] = dp[ ...
- 自然数幂和——第一类Stirling数和第二类Stirling数
第一类Stirling数 首先设 $$S_k(n)=\sum_{i=0}^ni^k$$ 根据第一类斯特林数的定义(P是排列数,C是组合数,s是Stirling) $$C_n^k={P_n^k\over ...
- Codeforces 622F The Sum of the k-th Powers ( 自然数幂和、拉格朗日插值法 )
题目链接 题意 : 就是让你求个自然数幂和.最高次可达 1e6 .求和上限是 1e9 分析 : 题目给出了最高次 k = 1.2.3 时候的自然数幂和求和公式 可以发现求和公式的最高次都是 k+1 ...
- 第二类Stirling数
第二类斯特林数 第二类Stirling数:S2(p, k) 1.组合意义:第二类Stirling数计数的是把p个互异元素划分为k个非空集合的方法数 2.递推公式: S2(0, 0) = 1 S2(p, ...
- [BZOJ5093]图的价值(NTT+第二类Stirling数)
5093: [Lydsy1711月赛]图的价值 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 250 Solved: 130[Submit][Sta ...
- 自然数幂和&伯努利数(Bernoulli)
二项式定理求自然数幂和 由二项式定理展开得 \[ (n+1)^{k+1}-n^{k+1}=\binom {k+1}1n^k+\binom {k+1}2n^{k-1}+\cdots+\binom {k+ ...
- UVA766 Sum of powers(1到n的自然数幂和 伯努利数)
自然数幂和: (1) 伯努利数的递推式: B0 = 1 (要满足(1)式,求出Bn后将B1改为1 /2) 参考:https://en.wikipedia.org/wiki/Bernoulli_numb ...
- lightOJ 1326 Race(第二类Stirling数)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1326 题意:有n匹马赛跑.问有多少种不同的排名结果.可以有多匹马的排名相同. 思路:排 ...
- [总结] 第二类Stirling数
上一道例题 我们来介绍第二类Stirling数 定义 第二类Stirling数实际上是集合的一个拆分,表示将n个不同的元素拆分成m个集合的方案数,记为 或者 .和第一类Stirling数不同的是,集合 ...
随机推荐
- 内置Jetty配置JSP支持过程中的常见报错
目录 1. 常见报错及解决 1.1 JSP support not configured 1.2 JSTL标签解析 1.3 JSP编译 1.4 JSP实现依赖 1.5 EL表达式支持 2. 小结 1. ...
- python中的线程锁
锁对象 原始锁是一个在锁定时不属于特定线程的同步基元组件.在Python中,它是能用的最低级的同步基元组件,由 _thread 扩展模块直接实现. 原始锁处于 "锁定" 或者 &q ...
- Spark运行基本流程
- 获取linux性能数据
import reimport osimport sysimport jsonimport socketfrom urllib import request,parseimport urllibfro ...
- mysql双主热备
先搭建mysql主从模式,主从请参考mysql 主从笔记 然后在在配置文件里添加如下配置 1 log_slave_updates= #双主热备的关键参数.默认情况下从节点从主节点中同步过来的修改事件是 ...
- 初识 HTML
HTML 1.描述 HTML超文本标记语言(英语:HyperText Markup Language)是一种用于创建网页的标准标记语言 您可以使用 HTML 来建立自己的 WEB 站点,HTML 运行 ...
- jquery高级编程学习
jquery高级编程 第1章.jQuery入门 类型检查 对象 类型检查表达式 String typeof object === "string" Number typeof ob ...
- Windows 虚拟机 VM
VMware是全球台式电脑及资料中心虚拟化解决方案的领导厂商.VMWare Workstation是该公司出品的“虚拟 PC”软件(即:大家常说的“虚拟机”),通过它可在一台电脑上同时运行更多的Mic ...
- 最大流——poj1459
#include<iostream> #include<cstdio> #include<cstring> #include<queue> using ...
- tyvj 1194 划分大理石(多重背包)
传送门 解题思路 二进制优化多重背包裸题. 代码 #include<iostream> #include<cstdio> #include<cstring> #in ...