首先,这是我自己推出来的,O(n^2),常数巨大。所以无能为力优化!所以求此数列的公式!求优化!!!

主要思想:要算b次的,那么就要先算b+1次的。

首先,我用F(i, j)表示杨辉三角第i层第j个,即(a+b)^(i-1),i>1的展开各项系数

第1层:1

第2层:1 1          ((a+b)^1)

第3层:1 2 1       ((a+b)^2)

第4层:1 3 3 1    ((a+b)^3)

....

upd:原来自己2写的都是什么东西,后期想改成latex也不改了,就这样了。现在我来推:

用高一次的推低次的:

$$要求:\sum_{i=1}^{n} i^b$$

$$那么根据:\sum_{i=1}^{n} i^{b+1} + (n+1)^{b+1} = \sum_{i=1}^{n+1} i^{b+1} = \sum_{i=0}^{n} (i+1)^{b+1}$$

然后展开右式后发现能高此项的能约掉,所以就能得到低次项的。

那么,(n+1)^b展开就是

$$F(b+1,1) \times n^b + F(b+1,2) \times n^(b-1) + ... + F(b+1,b) \times n^1 + F(b+1,b+1) \times n^0$$

那么

$$(1+1)^b + (2+1)^b + (3+1)^b + ... + (n+1)^b =$$

$$(F(b+1,1) \times 1^b + F(b+1,1) \times 2^b + F(b+1,1) \times 3^b + ... + F(b+1,1) \times n^b) +$$

$$(F(b+1,2) \times 1^(b-1) + F(b+1,2) \times 2^(b-1)  + F(b+1,2) \times 3^(b-1)  + ... + F(b+1,2) \times n^(b-1) ) +$$

...

$$(F(b+1,b) \times 1^1 + F(b+1,b) \times 2^1 + F(b+1,b) \times 3^1 + ... + F(b+1,b) \times n^1) +$$

$$(F(b+1,b+1) \times 1^0 + F(b+1,b+1) \times 2^0 + F(b+1,b+1) \times 3^0 + ... + F(b+1,b+1) \times n^0) = $$

$$F(b+1,1) \times (1^b+2^b+...+n^b) + F(b+1,2) \times (1^(b-1)+2^(b-1)+...+n^(b-1)) + ... + F(b+1,b) \times (1^1+2^1+...+n^1) + F(b+1,b+1) \times (1^0+2^0+...+n^0) $$

因为F(b+1,1)=F(b+1,b+1)=1

所以 化简得到

$$(1+1)^b + (2+1)^b + (3+1)^b + ... + (n+1)^b =

(1^b+2^b+...+n^b) + F(b+1,2) \times (1^(b-1)+2^(b-1)+...+n^(b-1)) + ... + F(b+1,b) \times (1^1+2^1+...+n^1) + n$$

好了,我们发现了1^(b-1)+2^(b-1)+...+n^(b-1)出现了,那么就可以算了。将(1^b+2^b+...+n^b) 移左式,得

(n+1)^b - 1 - n = F(b+1,2) \times (1^(b-1)+2^(b-1)+...+n^(b-1)) + ... + F(b+1,b) \times (1^1+2^1+...+n^1)

好了,继续化简,得

1^(b-1)+2^(b-1)+...+n^(b-1) = ((n+1)^b - (n+1) - F(b+1,3) \times (1^(b-2)+2^(b-2)+...+n^(b-2)) - ... - F(b+1,b) \times (1+2+...+n)) / F(b+1,2)

因为F(b+1,2) = b,所以,最终得

1^(b-1)+2^(b-1)+...+n^(b-1) = ((n+1)^b - (n+1) - F(b+1,3) \times (1^(b-2)+2^(b-2)+...+n^(b-2)) - ... - F(b+1,b) \times (1+2+...+n)) / b

我们令 x = b-1,那么b = x+1,得

1^x+2^x+...+n^x = ((n+1)^(x+1) - (n+1) - F(x+2,3) \times (1^(x-1)+2^(x-1)+...+n^(x-1)) - ... - F(x+2,x+1) \times (1+2+...+n)) / (x+1)

好了,我们现在用S(x)表示1^x+2^x+...+n^x

得到公式:

S(1) = 1^1+2^1+...+n^1 = n(n+1) / 2

S(x) = ((n+1)^(x+1) - (n+1) - F(x+2,3) \times S(x-1) - F(x+2,4) \times S(x-2) - ... - F(x+2,x+1) \times S(1)) / (x+1)

(不证明了,自己用归纳证一下)

(另,求优化!有没有O(1)算法,那个(n+1)^(x+1)会耗很多时间= =)

好了。我们将x=2带进去得到1^2+2^2+...+n^2

得到

S(2) = ((n+1)^3- (n+1) - F(4,3) \times S(1)) / 3 = ((n+1)^3- (n+1) - 3 \times (n(n+1) / 2)) / 3 = (n^3 + 3 \times n^2 + 2 \times n - 3 \times n(n+1)/2) / 3 = n \times (2 \times n^2+3n+1) / 6 =n \times (n+1) \times (2 \times n+1) / 6

所以

S(2) = n \times (n+1) \times (2 \times n+1) / 6

即 1^2+2^2+...+n^2 = n \times (n+1) \times (2 \times n+1) / 6

(求大神们指点)

1^b+2^b+3^b+...+n^b数列的更多相关文章

  1. JavaScript权威指南 - 函数

    函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...

  2. NYOJ 1007

    在博客NYOJ 998 中已经写过计算欧拉函数的三种方法,这里不再赘述. 本题也是对欧拉函数的应用的考查,不过考查了另外一个数论基本定理:如何用欧拉函数求小于n且与n互质所有的正整数的和. 记eule ...

  3. 【探索】无形验证码 —— PoW 算力验证

    先来思考一个问题:如何写一个能消耗对方时间的程序? 消耗时间还不简单,休眠一下就可以了: Sleep(1000) 这确实消耗了时间,但并没有消耗 CPU.如果对方开了变速齿轮,这瞬间就能完成. 不过要 ...

  4. Python高手之路【三】python基础之函数

    基本数据类型补充: set 是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object ...

  5. C语言 · 查找整数 · 基础练习

    问题描述 给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个. 输入格式 第一行包含一个整数n. 第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000. 第三行包含一个 ...

  6. JavaScript实现常用的排序算法

    ▓▓▓▓▓▓ 大致介绍 由于最近要考试复习,所以学习js的时间少了 -_-||,考试完还会继续的努力学习,这次用原生的JavaScript实现以前学习的常用的排序算法,有冒泡排序.快速排序.直接插入排 ...

  7. 【Web动画】SVG 线条动画入门

    通常我们说的 Web 动画,包含了三大类. CSS3 动画 javascript 动画(canvas) html 动画(SVG) 个人认为 3 种动画各有优劣,实际应用中根据掌握情况作出取舍,本文讨论 ...

  8. Node.js:进程、子进程与cluster多核处理模块

    1.process对象 process对象就是处理与进程相关信息的全局对象,不需要require引用,且是EventEmitter的实例. 获取进程信息 process对象提供了很多的API来获取当前 ...

  9. [C#][算法] 用菜鸟的思维学习算法 -- 马桶排序、冒泡排序和快速排序

    用菜鸟的思维学习算法 -- 马桶排序.冒泡排序和快速排序 [博主]反骨仔 [来源]http://www.cnblogs.com/liqingwen/p/4994261.html  目录 马桶排序(令人 ...

  10. 算法与数据结构(十七) 基数排序(Swift 3.0版)

    前面几篇博客我们已经陆陆续续的为大家介绍了7种排序方式,今天博客的主题依然与排序算法相关.今天这篇博客就来聊聊基数排序,基数排序算法是不稳定的排序算法,在排序数字较小的情况下,基数排序算法的效率还是比 ...

随机推荐

  1. spring3.2.8+quartz2.2.0(比较全,对比quartz1.x的配置)

    spring3.2.8 + quartz2.2.0报错: java.lang.IncompatibleClassChangeError: class org.springframework.sched ...

  2. 设置windows网络连接别名和linux网络连接别名

    windows网络连接别名 C:\Windows\System32\drivers\etc目录下的hosts文件中添加 127.0.0.1 localhost 192.168.1.100 proxy. ...

  3. iOS CoreData 的级联删除等操作

    关于CoreData 的基本操作在网上有一些中文资料,但是这些资料大多没有涉及CoreData的详细操作,只是简单的演示了最基本用法.像级联删除这种最基本的数据库操作都没有提到.今天在网上看到了一些英 ...

  4. Android 中PendingIntent---附带解决AlarmManager重复加入问题

    最近在程序中使用到了notification功能,自然,就涉及到了PendingIntent,下面总结下. 1 什么是PendingIntent A description of an Intent ...

  5. Java for LeetCode 076 Minimum Window Substring

    Given a string S and a string T, find the minimum window in S which will contain all the characters ...

  6. linux下如何设置vip(虚拟ip)

    在做HA的时候需要为服务器设计虚拟IP,也就是一个主机对应多个IP地址?刚听起来好神奇,原来这样也是可能的看了下面的这个链接 自己配了一下http://hi.baidu.com/pbottle/ite ...

  7. surface RT app安装心得

    打开store,然后在键盘输入字母,就出现搜索栏了. 想安装qq,但是输入后找不到软件,原因是我在初始化系统的时候,我的所在地选择的是新加坡,因此找不到软件.在屏幕右下方的setting,然后将所在地 ...

  8. 学习Hadoop整体理解

    HDFS是Hadoop的核心模块之一,围绕HDFS是什么.HDFS的设计思想和HDFS的体系结构三方面来介绍. Hadoop的设计思想受到Google公司的GFS设计思想的启示,基于一种开源的理念实现 ...

  9. Fresco 源码分析(一) DraweeView-DraweeHierarchy-DraweeController(MVC) DraweeHierachy+DraweeController的分析

    4.1.5.2 模型层DraweeHierachy继承体系以及各个类的作用 DraweeHierachy (I) --| SettableDraweeHierarchy (I) ------| Gen ...

  10. mysql安装(Mac平台)

    mac平台安装mysql有两种方式: 1)使用官方度dmg安装: 2)使用homebrew方式 本人比较推荐使用homebrew方式安装,省去大多数的麻烦,使用官方dmg方式推荐到官网下载:http: ...