这个问题似乎有很多种求法,但感觉上第二类Strling数的做法是最方便的。


问题

求下面这个式子:

∑i=0nik\sum_{i=0}^n i^ki=0∑n​ik

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∑k​Ski​i!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∑k​Ski​j=a−i+1∏a​j


推理

先把结论放在前面:

∑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∑n​ik=i=0∑k​i+1Ski​∏j=n−i+1n+1​j​

证明如下:

∑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∑n​ik=a=0∑n​i=0∑k​Ski​i!Cai​=i=0∑k​Ski​i!a=0∑n​Cai​

因为a&lt;ia&lt;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∑k​Ski​i!a=i∑n​Cai​

由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∑n​Cai​=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∑k​Ski​i!Cn+1i+1​=i=0∑k​i+1Ski​∏j=n−i+1n+1​j​

这样式子就推完了。

自然数幂求和——第二类Strling数的更多相关文章

  1. HDU 4045 Machine scheduling --第二类Strling数

    题意: n个数(1~n)取出r个数,取出的数相差要>=k, 然后分成m个可空组,问有多少种情况. 解法: 先看从n个数中取r个相差>=k的数的方法数,可以发现 dp[i][j] = dp[ ...

  2. 自然数幂和——第一类Stirling数和第二类Stirling数

    第一类Stirling数 首先设 $$S_k(n)=\sum_{i=0}^ni^k$$ 根据第一类斯特林数的定义(P是排列数,C是组合数,s是Stirling) $$C_n^k={P_n^k\over ...

  3. Codeforces 622F The Sum of the k-th Powers ( 自然数幂和、拉格朗日插值法 )

    题目链接 题意 : 就是让你求个自然数幂和.最高次可达 1e6 .求和上限是 1e9 分析 :  题目给出了最高次 k = 1.2.3 时候的自然数幂和求和公式 可以发现求和公式的最高次都是 k+1 ...

  4. 第二类Stirling数

    第二类斯特林数 第二类Stirling数:S2(p, k) 1.组合意义:第二类Stirling数计数的是把p个互异元素划分为k个非空集合的方法数 2.递推公式: S2(0, 0) = 1 S2(p, ...

  5. [BZOJ5093]图的价值(NTT+第二类Stirling数)

    5093: [Lydsy1711月赛]图的价值 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 250  Solved: 130[Submit][Sta ...

  6. 自然数幂和&伯努利数(Bernoulli)

    二项式定理求自然数幂和 由二项式定理展开得 \[ (n+1)^{k+1}-n^{k+1}=\binom {k+1}1n^k+\binom {k+1}2n^{k-1}+\cdots+\binom {k+ ...

  7. UVA766 Sum of powers(1到n的自然数幂和 伯努利数)

    自然数幂和: (1) 伯努利数的递推式: B0 = 1 (要满足(1)式,求出Bn后将B1改为1 /2) 参考:https://en.wikipedia.org/wiki/Bernoulli_numb ...

  8. lightOJ 1326 Race(第二类Stirling数)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1326 题意:有n匹马赛跑.问有多少种不同的排名结果.可以有多匹马的排名相同. 思路:排 ...

  9. [总结] 第二类Stirling数

    上一道例题 我们来介绍第二类Stirling数 定义 第二类Stirling数实际上是集合的一个拆分,表示将n个不同的元素拆分成m个集合的方案数,记为 或者 .和第一类Stirling数不同的是,集合 ...

随机推荐

  1. Java-Class-C:org.springframework.http.MediaType

    ylbtech-Java-Class-C:org.springframework.http.MediaType 1.返回顶部 1.1. /* * Copyright 2002-2018 the ori ...

  2. [转]ThinkPHP分页实例

    很多人初学thinkphp时,不太熟悉thinkphp的分页使用方法,现在将自己整理的分页方法分享下,有需要的朋友可以看看.   控制器中的代码:   $db = M("cost" ...

  3. sizeof,真正终结版GCC与VC

    在VC6.0中sizeof结果是16.我电脑上装了个linux虚拟机,在虚拟机上GCC中结果是12, 恩不同编译器默认对齐数值不一样. VC 默认为 8 gcc 默认为 4 有个编译参数控制对齐. # ...

  4. seo具备的条件

    对于SEO这行业,许多想学习这一行,但是并非每一个人都有这样才能.因为SEO份这行靠是真材实料并非虚拟人才.现在找到高工资的SEO人才需要 有三年以上经验,熟悉PHP.html.asp.java等等这 ...

  5. Springboot-WebSocket获取HttpSession问题

    换了新工作,第一个任务就是和这个有关,以前没接触过,没办法,各种度娘.谷哥,大部分都是只言片语,要么就是特定的配置环境还不贴配置--,踩坑无数, 遂整理成笔记 WebSocket协议 WebSocke ...

  6. Windows下安装配置PLSQL

    说明:1.PLSQL Developer是远程连接Oracle数据库的一个可视化工具,并且其不是一个独立的软件,是需要依赖Oracle客户端运行的.2.本安装教程是基于本机没有安装Oracle数据库的 ...

  7. enumrate用法

    转自*https://www.runoob.com/python/python-func-enumerate.html*侵删 描述 enumerate() 函数用于将一个可遍历的数据对象(如列表.元组 ...

  8. POJ 4718 /// 树链剖分+线段树区间合并 求树上两点间的LCIS长度

    题目大意: 给定n个点 每个点都有权值 接下来给定树的n条边 第 i 个数 a[i] 表示 i+1到a[i]之间 有一条边 给定q q个询问 每次询问给出 x y 求x到y的最长上升子序列的长度 题解 ...

  9. Spring MVC @CookieValue注解(5)

    @CookieValue的作用 用来获取Cookie中的值 @CookieValue参数 1.value:参数名称 2.required:是否必须 3.defaultValue:默认值 @Cookie ...

  10. C++类成员变量多用指针不用对象

    如A类的成员变量含有B类的对象,那么每个A类对象产生或拷贝都要产生一次B类对象的构造或者拷贝,对象占的空间比较大,对象拷贝比较消耗内存. 如果换成B类的指针,A类对象拷贝,也只会产生4个字节或者8个字 ...