今天备考软件设计师,遇到个公式1+2+3+..+n=n(n+1)/2,居然一时卡壳无法证明。

我们先看看令高斯闻名世界的小学数学题,1+2+3+...+98+99+100=?

算法1: 逐个累加。

算法2:逐对的首尾相加: (1+100)+(2+99)+(3+98)+...+(50+51) ,总共有 50对101,就是50*101=5050。

算法3:创造出一个相反的计算式 100+99+98+...+3+2+1,它与1+2+3+...+99+100的结果是相同的,两个式子一一对应相加,总共是100个101,就是100*101,然后再除2,就是100*101/2 = 5050。

这三个算法,显然第三个更直观更清晰。让我感到惊奇的是它的创造性,它没有直接去求解问题,而是创造性的提出一个新问题,然后利用这个多余的新问题与题目之间的独特关系,从而简化了原问题的求解。不得不说,真的不是一般没有受过数学训练的人能想到的。

我们再用算法2和3去推导公式:1+2+3+..+n=n(n+1)/2。

算法2:

n为偶数时,逐对进行首尾相加,刚好有n/2对,每对的和是n+1,二者相乘就是和:(n+1)n/2。

比如:1+2+3+4。

n为奇数时,这时有2种方法。

方法1:先累加前n-1,即先计算:1+2+3+..+n-1,套用偶数的公式,结果前n-1项的和是 n(n-1)/2,然后再加上n,就是 n+n(n-1)/2 = n(n+1)/2。

方法2:逐对进行首尾相加,会有(n-1)/2对,每对的和是n+1,但中间剩下个单项,是 (n+1)/2,两个部分加起来,就是:(n+1)(n-1)/2 + (n+1)/2 = (n+1)n/2。

比如:1+2+3+4+5。

算法3(清晰易懂):

要求1+2+3+...+(n-1)+n

构造n+(n-1)+...+3+2+1

二者上下对应相加,得到:

(n+1)+(n+1)+...+(n+1)+(n+1)+(n+1)

容易看出,是n个n+1相加,即 n*(n+1)

因构造的算式与要求的算式值相等,所以刚才的结果除2,即 n(n+1)/2 为最终结果。

看完算法3是不是感觉眼前一亮,非常清晰。

不得不感慨:数学真的是精妙!

写于湖北省图,2019.10.26

【数学-算法】1加到100的有趣算法相关推荐

  1. python全排序算法题_Python的100道经典算法题(1)

    按照c语言的100道经典算法题,自己原创写的,就得是自己的练习题了 [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位.十位.个位的数 ...

  2. HTML如何计算1到100的和,从1加到100等于多少 【求和算法汇总】

    从1加到100等于多少 [求和算法汇总] 2018-03-28 22:54:06编辑: zhaozhishi | | 从1加到100,最后得出的和是多少,大致可以写成这样:1+2+3+4+5+6+7+ ...

  3. JAVA里面一加到一百等于多少_1加到100是多少?详细算法

    展开全部 1加到100公式推导过程:1+2+3+4+5+6+7+8+9+10+11+......90+91+92+93+94+95+96+97+98+99+100 =(1+100)+(2+99)+(3 ...

  4. python基本算法合集(14)——计算从1加到100之和

    程序要求计算从1加到100之和. i=a=0 while i<100:i+=1a+=iprint ('从1加到100等于',a)

  5. 我在网上抢火车票:多加了100元的加速包,却依然买不到票

    随着抢票软件市场竞争越来越激烈,有些公司开始利用用户急切的心理做起了误导付费,甚至是空手套白狼的勾当,吃相越来越难看. 2019 年从开始到结束,好像就是一眨眼的事,转眼又到 12 月了! 对于每个外 ...

  6. linux系统计算从1加到100之和思路风暴

    博文前言:    本博文为<老男孩linux就业培训中心-初级班第七期课前考试及课上讲解的课后答案整理, 原题:通过shell编程或命令行方式求1+2+3...+100=?的和来活学活用shel ...

  7. c语言100块钱买100只鸡算法,JS计算输出100元钱买100只鸡问题的解决方法

    JS计算输出100元钱买100只鸡问题的解决方法 本文实例讲述了JS计算输出100元钱买100只鸡问题的方法.分享给大家供大家参考,具体如下: 问题: 公鸡5元一只,母鸡3元一只,小鸡1元买三只,我现 ...

  8. 20万、50万、100万的算法工程师,有什么区别?

    本文作者:北冥乘海生 近几年,算法工程师们的境遇有了很大改观:早些年,信奉糙快猛主义的大佬们觉得他们饱食终日.无所用心,没工作只好在学校混博士,靠数据上的障眼法装神弄鬼.可是,随着去年AlphaGo大 ...

  9. 一周刷爆LeetCode,算法da神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记

    一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记 教程与代码地址 P1 出圈了!讲课之外我们来聊聊 ...

  10. 20 万、50 万、100 万年薪的算法工程师在能力素质模型上有哪些差距?

    编辑:Amusi(公号CVer) https://www.zhihu.com/question/59461289 本文仅作为学术分享,如果侵权,会删文处理 20 万.50 万.100 万年薪的算法工程 ...

最新文章

  1. 重新捡起flask(二)
  2. mysql length函数_初识LLDB 调试 MySQL-爱可生
  3. 转换实体类_利用Java反射机制进行Map和JavaBean间转换
  4. ES6必知必会 (七)—— Generator 函数
  5. python generator_Python 生成器 generator
  6. 好评率超高的几个硬核公众号,99%的程序员都关注了!
  7. 软件开发团队中,凭什么新手当道?| 畅言
  8. Kubernetes使用Nginx Ingress暴露Dashboard
  9. Spring Cloud 微服务
  10. Qt5.12 使用FFmpeg实时解码播放H264/H265摄像头记录(直传数据法)
  11. npm安装任何包都报错解决方法
  12. SpringCloud 整合 Dubbo
  13. 年薪40-80K *14 | 网境科技SLAM算法工程师、算法科学家招聘
  14. html旅游地图制作,pyecharts 实现画地图 足迹 旅游
  15. Linux 中Tomcat 服务器 启动项目,页面删除报错“该信息被其他信息引用”解决 (ORA-02292)
  16. MT4 PC端历史版本更新(老版本MT4下载)
  17. android手机助手PC,电脑手机助手app
  18. Python,地理地图可视化:plotly绘制mapbox地图城市中心点经纬度marker标记
  19. ClickHouse最版本源码编译(X86)
  20. 荷兰黑客将他孩子的乐高列车放在区块链上

热门文章

  1. php如何去除文件扩展名,php怎样去掉文件扩展名_后端开发
  2. 手机号无法验证,如何注册推特
  3. cad没有命令输入框_cad2017命令输入框没了
  4. 网页完整的长截图怎么截?3步搞定!
  5. SpringBoot2.0系列教程(四)Springboot框架自定义消息转换器
  6. 计算机网络的作用拓展图,拓扑图介绍及相关功能
  7. vue路由守卫(页面鉴权)
  8. [你好,2022] 月落乌啼霜满天,江枫渔火对愁眠
  9. sunshine in the rain
  10. 阿里云企业邮箱标准版/集团版/尊享版区别对比