程序员数学基础【七、等比数列 棋盘麦粒】

简介: 程序员数学基础【七、等比数列 棋盘麦粒】

题干:


根据历史传说记载,国际象棋起源于古印度,相传国王要奖赏国际象棋的发明者,问他想要什么,发明者说:请您在棋盘的第一个格子里放1粒麦子,第二个格子里放2粒,第三个格子里放4粒,第四个格子里放8粒,以此类推,直到最后一个格子,第64格放满为止。


赏给我这么多数目的麦粒,我就十分满足了.国王觉得这个要求不高,就欣然同意了. 然而等到麦子成熟时,国王才发现,全印度的麦子竟然连棋盘一半的格子数目都填不满.  




微信图片_20220110222807.png




现在我们来帮助国王计算一下,想要填满64格棋盘,到底需要多少麦粒。实际上这是一个等比数列求和问题。棋盘的第一格只需要麦粒a1=1,第二个需要麦粒a2=2,第3格a3=4,等等,这些麦粒的数量构成一个首项a1=1,公比q=2的等比数列。那么要求64格棋盘的总麦粒数。


微信图片_20220110222804.png


微信图片_20220110222807.png


再观察对比这两个等式,发现它们有很多相同的指数幂,所以可以把两个等式相减来化简,我们用2式减1式,等号左边相减,2S64-S64,等号右边相减,这些相同的指数幂会消掉,最后留下来的,只有2^64,减去1.所以能得到棋盘上的总麦粒数S64,等于264-1,这是一个天文数字,相当于全世界2000年的小麦产量。


【Python暴力解法】


#定义一个变量来保存总的麦子数量,开始为0
c=0
#定义一个变量,循环1-64,来代表每一个格子
i=1
#假设每个格子中的麦子数量为x,初始也是1
x=1
#循环
while i<=64:
    c += x    #总数累计上这一个格子的麦粒数
    i += 1    #下一个格子
    x = x*2   #下一个格子的麦粒数是这一个格子的2倍
#显示结果
print("64个格子,总的麦粒数量为:",c)


微信图片_20220110222913.png


上面计算麦粒的方法,对任何一个q不等于1的等比数列求和,都是适用的。等比数列的前n项和Sn,=a1+a2+...+an,我们用a1和q来表示。


微信图片_20220110222944.png


错位相减法不仅适合于等比数列的求和,更多的时候,如果一个数列的通项形式,可以表示成,一个等差数列与一个等比数列的乘积时,那么都可以用错位相减法来求前n项和。至于等比数列想要求和,只要直接套公式就可以。


微信图片_20220110222959.png


远望巍巍塔七层,红光点点倍加增,共灯三百八十一,请问尖头几盏灯?”意思是:一座7层塔共挂了381盏灯,且相邻两层中,下一层灯数是上一层灯数的2倍,则塔的顶层共有几盏灯?


每层塔所挂的灯的数量形成一个等比数列,公比q=2,我们设塔的顶层有a1盏灯。7层塔一共挂了381盏灯,S7=381,按照等比求和公式,  那么有a1乘以1-2的7次方,除以1-2,等于381.能解出a1等于3.  尖头必有3盏灯。


相关文章
|
7月前
|
机器学习/深度学习 算法 BI
【设计】 【数学】1622 奇妙序列
【设计】 【数学】1622 奇妙序列
|
算法 搜索推荐 程序员
C语言第四练——利用海伦公式编程求三角形的面积
C语言第四练——利用海伦公式编程求三角形的面积
244 0
|
算法
Plant(快速幂+数学分析(没想到吧,数学无处不在))
Plant(快速幂+数学分析(没想到吧,数学无处不在))
73 0
|
机器学习/深度学习 程序员
程序员的数学【微积分基础】(二)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 微积分基础,微积分是公式推导的基础,如果你也关注我的专栏:西瓜书读书笔记,里面对公式进行详细推导的过程中,运用到了大量的 导数,积分,身为一名程序员,我们务必掌握一些必备的数学知识。
252 0
程序员的数学【微积分基础】(二)
|
机器学习/深度学习 程序员
程序员的数学【微积分基础】(一)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 微积分基础,微积分是公式推导的基础,如果你也关注我的专栏:西瓜书读书笔记,里面对公式进行详细推导的过程中,运用到了大量的 导数,积分,身为一名程序员,我们务必掌握一些必备的数学知识。
322 0
程序员的数学【微积分基础】(一)
|
机器学习/深度学习 数据挖掘 程序员
程序员的数学【线性代数基础】(一)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 线性代数基础,在机器学习中经常会有矩阵、向量的定义以及计算,是公式定义、推导中必不可少的一部分内容,很多基础概念的定义中都用到了向量的概念,有关线性代数,
387 0
程序员的数学【线性代数基础】(一)
|
机器学习/深度学习 程序员
程序员的数学【线性代数基础】(三)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 线性代数基础,在机器学习中经常会有矩阵、向量的定义以及计算,是公式定义、推导中必不可少的一部分内容,很多基础概念的定义中都用到了向量的概念,有关线性代数,
356 0
程序员的数学【线性代数基础】(三)
|
机器学习/深度学习 人工智能 程序员
程序员的数学【线性代数基础】(二)
本文其实值属于:程序员的数学【AIoT阶段二】 的一部分内容,本篇把这部分内容单独截取出来,方便大家的观看,本文介绍 线性代数基础,在机器学习中经常会有矩阵、向量的定义以及计算,是公式定义、推导中必不可少的一部分内容,很多基础概念的定义中都用到了向量的概念,有关线性代数,
171 0
程序员的数学【线性代数基础】(二)
|
程序员
程序员数学(12)--全等三角形
本文目录 1. 全等形 2. 全等三角形 3. 三角形全等的判定 4. 角平分线的性质
233 0
程序员数学(12)--全等三角形
|
程序员
程序员数学(13)--轴对称与等腰三角形
本文目录 1. 轴对称 2. 垂直平分线 3. 等腰三角形 4. 等边三角形 5. 存在30度角的直角三角形的性质
311 0
程序员数学(13)--轴对称与等腰三角形