page contents

python基础编程100例:第20期-分数序列求和

本文讲述了python基础编程100例:第20期-分数序列求和!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2022-03-3ye4tgrO622ea08218c68.png

本文讲述了python基础编程100例:第20期-分数序列求和!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

第20期-分数序列求和

1 问题描述

有一分数序列:

attachments-2022-03-PMGkS3LW622ea0583fd1b.png

求出这个数列的前20项之和~

2 解题思路

从整体看,该序列的分子等于前一项的分子与分母之和;分母等于前一项的分子

该序列的分子为:2、3、5、8、13、21...,每一项数值为前两项之和

该序列的分母为:1、2、3、5、8、13...,每一项数值为前两项之和

该序列分子和分母的特征与斐波那契数列非常相似,我们可以用求解斐波那契数列的方法求该数列前20项之和~​

关于如何求解斐波那契数列,大家可以查看第7期-斐波那契数列 (opens new window)的练习讲解


斐波那契数列指的是这样一个数列:

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 ……

这个数列从第3项开始,每一项都等于前两项之和


3 解题方法

#方法一:递归法

def f(x):

    if x == 1 or x == 2:

        return x

    return f(x - 1) + f(x - 2)

sum1 = 0

for i in range(1, 21):

    sum1 += f(i + 1) / f(i)

print(round(sum1, 2))

第1行: 定义函数 f, 传入参数 x

第2-3行: 设置递归算法的结束条件,当 x 等于 1 或 2 时,返回值为 x 本身

第4行: 否则,根据该序列分子和分母的特点,返回值为每一项数值的前两项之和

第7行: 创建变量sum1, 用于存储该序列最终的求和结果,初始赋值为 0

第8行: 求该序列前20项之和,需循环20次,用for循环控制循环次数

第9行: 该序列每一项可表示为 f(i + 1) / f(i) ,在每次循环中,将该序列的每一项与变量 sum1 相加,并将求和结果再赋值给sum1,这样当for循环结束时,sum1的值就是求和结果

第10行: 最后用print函数输出计算结果,round函数保留两位小数


方法二:for循环

a = 2

b = 1

sum1 = 0

for i in range(20):

    sum1 += a / b

    b, a = a, a + b

print(round(sum1, 2))

第1行: 创建变量 a, 用来表示该序列的分子,初始赋值为 2

第2行: 创建变量 b, 用来表示该序列的分母,初始赋值为 1

第3行: 创建变量sum1, 用于存储该序列最终的求和结果,初始赋值为 0

第4行: 用for循环控制循环次数

第5行: 该序列每一项可表示为 a / b ,在每次循环中,将该序列的每一项与变量 sum1 相加,并将求和结果再赋值给sum1

第6行: 该序列的分子等于前一项的分子与分母之和,分母等于前一项的分子,即b, a = a, a + b

第7行: 最后用print函数输出计算结果,round函数保留两位小数


在b, a = a, a + b这个式子中,右边的表达式会在赋值变动之前执行,即先执行 '=' 等号右边的表达式,再进行赋值

第1次循环,sum1 = 0 + 2 / 1, a + b = 3; 执行赋值后,b = 2, a = 3

第2次循环,sum1 = 0 + 2 / 1+3 / 2, a + b = 5; 执行赋值后,b = 3, a = 5

第3次循环,sum1 = 0 + 2 / 1+3 / 2 + 5 / 3, a + b = 8; 执行赋值后,b = 5, a = 8

以此类推,可计算出该序列前20项和

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-ZSnVxJZk62b3be2c249f8.jpeg

  • 发表于 2022-03-14 09:55
  • 阅读 ( 1992 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章