有个Oier小学妹问了我一个Σi^k,i<=1e8 ,k<=1e6的问题,我认为这个用伯努利数列可能可以解决他的问题,所以整理了以下文章,给学弟学习学习~~~本人水平有限,也只能帮到这里了吧QAQ~~~

下面进入正文:

计算∑{i=1,n}i^k 的值需要引入伯努利数列的概念

定义将(B-1)^k展开,然后将B^k写成数列的第k项,即B(k)

k>=2时,令(B-1)^k展开后的形式(将B^k写成B(k))与B(k)相等

(便于记忆相当于,令(B-1)^k=B^k,然后将B^k写成B(k)求出各个项的值)

即可得出伯努利数列(即伯努利数)

例如

计算B(1)

令(B-1)^2=B^2

B^2-2B+1=B^2

B^k写成数列的第k项,即B(k)

B(2)-2B(1)+1=B(2)

B(1)=0.5

同理,若计算B(2)

令(B-1)^3=B^3

B^3-3B^2+3B-1=B^3

B^k写成数列的第k

B(3)-3B(2)+3B(1)-1=B(3)

B(2)=[3B(1)-1]/3

B(2)=1/6

由此可算出数列的任意一项

定义B(0)=1

由上面所述:

(x+B)^(k+1)

=∑{i=0, k+1}C{i,k+1}B^i*x^(k+1-i)

=x^(k+1)+C{1,k+1}Bx^k+∑{i=2,k+1}C{i,k+1}*B^i*x^(k+1-i)

=x^(k+1)+0.5C{1,k+1}x^k+∑{i=2,k+1}C{i,k+1}*B^i*x^(k+1-i)

(x+B-1)^(k+1)

=∑{i=0, k+1}C{i,k+1}(B-1)^i*x^(k+1-i)

=x^(k+1)+C{1,k+1}(B-1)x^k+∑{i=2,k+1}C{i,k+1}*(B-1)^i*x^(k+1-i)

=x^(k+1)-0.5C{1,k+1}x^k+∑{i=2,k+1}C{i,k+1}*(B-1)^i*x^(k+1-i)

因为B(k)是伯努利数列

(B-1)^i=B^i

(x+B-1)^(k+1)

=x^(k+1)-0.5C{1,k+1}x^k+∑{i=2,k+1}C{i,k+1}*B^i*x^(k+1-i)

所以

(x+B)^(k+1)-(x+B-1)^(k+1)=(k+1)x^k

x=1,2,3,…,i,…,n

(1+B)^(k+1)-B^(k+1)=(k+1)

(2+B)^(k+1)-(1+B)^(k+1)=(k+1)*2^k

(3+B)^(k+1)-(2+B)^(k+1)=(k+1)*3^k

……

(i+B)^(k+1)-(i-1+B)^(k+1)=(k+1)*i^k

……

(n+B)^(k+1)-(n-1+B)^(k+1)=(k+1)*n^k

由上式求和,得:

(n+B)^(k+1)-B^(k+1)=(k+1)∑{i=1,n}i^k

∑{i=1,n}i^k=[(n+B)^(k+1)-B^(k+1)]/(k+1)

注意:

这里的(n+B)^(k+1)并不代表(n+B)的k+1次幂

而是指的展开后将B^k写成伯努利数列的第k

就像前面说的一样。想要严密的算法,就是欧拉

的算法,涉及到无穷级数,比较麻烦但非常严密。

本文所用的符号:

数列求和a(1)+a(2)+a(3)+…+a(n)表示为

∑{i=1,n}a(n)

n个数中选出m个的组合数为

C{m,n}

以下是用Word整理的文本,我也不知道为啥有时候公式贴上来是错误的,所以怕看不清什么的,截个图存一下,也方便自己查询学习~



下面的图片是数学家欧拉考虑到无穷级数的比较严密的算法:





个人整理方幂和公式(∑i^k 公式)的更多相关文章

  1. EXCEL 如何实现下拉填充公式,保持公式部分内容不变,使用绝对引用

    EXCEL 如何实现下拉填充公式,保持公式部分内容不变,使用绝对引用 在不想变的单元格前加$符号(列标和列数,两个都要加$),变成绝对引用,默认情况是相对引用 L4固定不变的方式:$L$4 M4固定不 ...

  2. latex:在公式之中和公式之间插入说明文字和标点符号

    在公式之中和公式之间插入说明文字和标点符号,主要使用 \intertext{文本} \shortintertext{文本} \text{文本} 这三个命令 代码: \begin{align*}x^{2 ...

  3. HDU 3221 矩阵快速幂+欧拉函数+降幂公式降幂

    装载自:http://www.cnblogs.com/183zyz/archive/2012/05/11/2495401.html 题目让求一个函数调用了多少次.公式比较好推.f[n] = f[n-1 ...

  4. POJ-1845 Sumdiv---因子和(快速幂+快速加法+因子和公式)

    题目链接: https://cn.vjudge.net/problem/POJ-1845 题目大意: 求AB的因子和 解题思路: 先将A质因数分解,然后B次方的质因数指数就是乘上B即可 这里要mod9 ...

  5. 51Nod 1013 3的幂的和 快速幂 | 乘法逆元 | 递归求和公式

    1.乘法逆元 直接使用等比数列求和公式,注意使用乘法逆元 ---严谨,失细节毁所有 #include "bits/stdc++.h" using namespace std; #d ...

  6. HDU_2604 矩阵快速幂 较难推的公式

    一个排队问题,f代表女,m代表男,f和m出现的几率相等.问一个长为L的队伍不能出现 fmf 和 fff这样的串总共有多少种. 这个题目的公式递推略难啊...我看了别人博客才想明白原来是这么递推出来的. ...

  7. POI单元格添加公式以及读取公式结果的值

    POI提供了为单元格添加条件样式的方法,但是我并没有找到获取单元格改变后样式的方法,获取到样式依旧是没有改变之前的. 比如为单元格添加条件样式用于监听单元格值是否被修改,如果单元格值被修改那么字体颜色 ...

  8. latex之行内公式与行间公式

    1.行内公式 我是对行内公式的测试$f(x)=1+x+x^2$ 2.行间公式 单行不编号 \begin{equation} \int_0^1(1+x)dx \end{equation} 结果为: 单行 ...

  9. Word中MathType公式与LaTeX公式的转换

    1. 对Word文档中用MathType输入的公式,在word中,选中mathtype公式,按住“Alt+\”键,可以将MathType公式转换成Latex格式. 2. 同样,将Latex格式的公式代 ...

随机推荐

  1. mongodb副本集配置

    需要用到mongodb的时候单个实例肯定是不行的,挂了怎么办,那然后呢,跟mysql一样搞主从备份吗,是可以的mongodb这么弄,不过官网已经不推荐了这么干了,推荐使用副本集的模式,然后数据再大一点 ...

  2. JavaScript基础2——关于变量

    变量的声明                            变量的定义:使用var关键字来声明,区分大小写的.注意:不用var,会污染全局变量.        变量的命名规范是:字母,数字,$符 ...

  3. 网口划VLAN

    do sho run int g0/28 int g0/18 sw mo acc sw acc vlan 220 span portfa exit do wr exit

  4. 《Linux系统编程手册》读书笔记——第2章基本概念

    操作系统的核心--内核 内核的职责 进程调度:Linux属于抢占式多任务操作系统,多个进程可同时驻留于内存,且每个进程都能获得对CPU的使用权.哪些进程获得对CPU的使用,以及每个进程能使用多长时间 ...

  5. css弹性盒子新旧兼容

    前言:本篇随笔是对弹性盒子有了解的人来写的这篇文章,具体属性产生的效果这里不做说明,基础的东西去查文档.这里只是总结. 时至今日,css3的flex弹性盒子在移动端基本上都是支持的,但不排除有些些低版 ...

  6. lesson - 3 笔记 ls /alias /ldd /cd /pwd /环境变量 / 目录

    一.ls 命令 作用:用来显示目录列表. 语法: ls  (选项) (参数) 选项: -a: 显示所有档案以及目录(ls内定将档案或目录名称为“./..”的视为隐藏) -A: 显示除隐藏文件“./.. ...

  7. 微信公众号H5支付遇到的那些坑

    简史 官方文档说的很清楚,商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程. 当然,最近微信支付平台也加入了纯H5支付,也就是说用户可以在微信以外的 ...

  8. 再谈javascript面向对象编程

    前言:虽有陈皓<Javascript 面向对象编程>珠玉在前,但是我还是忍不住再画蛇添足的补上一篇文章,主要是因为javascript这门语言魅力.另外这篇文章是一篇入门文章,我也是才开始 ...

  9. 前端学习_01_css网页布局

    引子 之前也自己陆陆续续地学了一些web方面的知识,包括前段和后端都有涉及到,自己也比较感兴趣,感谢peter老师,愿意无偿提供从零开始的教学,之前也看过peter老师的一些视频,节奏非常适合我,决心 ...

  10. Java的虚方法

    虚方法出现在Java的多态特性中, 父类与子类之间的多态性,对父类的函数进行重新定义.如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding).在Java中,子类 ...