这个问题似乎有很多种求法,但感觉上第二类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. faster-rcnn代码阅读-rpn-data层

    这一节讲述rpn-data层,和这一层有关的结构图如下: rpn-data层的prototxt定义如下: layer { name: 'rpn-data' type: 'Python' bottom: ...

  2. java排序算法之冒泡排序和快速排序

    总结一下Java排序算法,以便记忆. 各类排序的时间复杂度: 排序方法 时间复杂度(平均) 时间复杂度(最坏) 时间复杂度(最好) 空间复杂度 稳定性 复杂性 直接插入排序 O(n2)O(n2) O( ...

  3. 3步永久性激活IntelliJ IDEA 亲测有效

    1.进到文件夹中:C:\Windows\System32\drivers\etc ,找到hosts文件,用文本编辑器打开文件,将“  0.0.0.0 account.jetbrains.com ”添加 ...

  4. XStream入门应用程序

    在进入XStream库的细节之前,让我们来看看应用程序操作.在这个例子中,我们创建Student和Address类.还将创建一个Student对象,然后将其序列化到一个XML字符串.然后反序列化的同一 ...

  5. javascript es6 语法快速入门

    1. let.const 作用:let 声明变量,const 声明常量 与 var 的区别:不能重复声明,且存在块级作用域,即只在代码块内生效 2. 箭头函数 使用: let show = funct ...

  6. adb shell 查看内存信息

    1.根据包名来查看指定的APP指定数据adb shell "top | grep com.xxx.xxx" 由于这样打印出来的数据没有参数名,可以参考这个命令来看:adb shel ...

  7. uoj118 【UR #8】赴京赶考

    题目 不难发现我们直接走过去就行了 考虑到第\(i\)行的构造方法就是把\(b\)数组作为模板,每个数和\(a_i\)异或一下就可以了 于是不难发现对于一段连续相等的\(a\),它们在矩阵上就形成了完 ...

  8. python包的安装

    Microsoft Windows [版本 10.0.17134.228] (c) 2018 Microsoft Corporation.保留所有权利. C:\Users\Administrator& ...

  9. JS,JQuery,获得选中的Radio值

    1.HTML代码 <input type=" checked="checked" /><label for="a1">男< ...

  10. ES5给object扩展的一些静态方法

    1. Object.create(prototype[, descriptors]) : 创建一个新的对象 1). 以指定对象为原型创建新的对象 2). 指定新的属性, 并对属性进行描述 value ...