python经典百题之求分数前N项和

题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。

1. 方法一:普通循环

思路:利用循环计算每一项的值,并累加求和。
优点:实现简单,易于理解。
缺点:计算速度稍慢,当计算量较大时效率低下。
代码实现

def sum_sequence(n):a, b = 2, 1s = 0for i in range(n):s += a / ba, b = a + b, areturn sprint(sum_sequence(20))

2. 方法二:递归

思路:利用递归计算每一项的值,并累加求和。
优点:实现简单,易于理解。
缺点:同方法一,当计算量较大时效率低下。
代码实现

def fibonacci(n):if n == 1:return 2if n == 2:return 3return fibonacci(n-1) + fibonacci(n-2)def sum_sequence(n):s = 0for i in range(1, n+1):s += fibonacci(i) / fibonacci(i-1)return sprint(sum_sequence(20))

3. 方法三:列表推导式

思路:利用列表推导式计算每一项的值,并累加求和。
优点:代码简洁,易于理解,计算速度较快。
缺点:计算量较大时,列表占用的内存空间较大。
代码实现

def sum_sequence(n):s = sum([fibonacci(i) / fibonacci(i-1) for i in range(1, n+1)])return sprint(sum_sequence(20))

4. 方法四:生成器表达式

思路:利用生成器表达式计算每一项的值,并累加求和。
优点:代码简洁,易于理解,计算速度快,不占用过多内存空间。
缺点:无法同时使用列表中的方法。
代码实现

def sum_sequence(n):s = sum(fibonacci(i) / fibonacci(i-1) for i in range(1, n+1))return sprint(sum_sequence(20))

5. 方法五:数学公式

思路:利用斐波那契数列的特性,直接计算前n项和。
优点:计算速度最快。
缺点:代码实现较复杂,适用范围有限。
代码实现

import mathdef sum_sequence(n):sqrt5 = math.sqrt(5)s = (pow((1+sqrt5)/2, n+1) - pow((1-sqrt5)/2, n+1)) / sqrt5 - 1return sprint(sum_sequence(20))

最推荐的方法是方法四,使用了生成器表达式,代码简洁易懂,计算速度快,内存空间占用较少。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/83086.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3创建的官网提示方法

创建: npm create vuelatest 或许会出现提示: 根据官网提示: 意味着我们需要安装或者更新create-vue的版本 后面就可以跟随提示了

【2023年11月第四版教材】第13章《资源管理》(第三部分)

第13章《资源管理》(第部分) 4 规划资源管理4.1 数据表现★★★4.2 资源管理计划★★★4.2 团队章程★★★ 5 估算活动资源 4 规划资源管理 组过程输入工具和技术输出规划1.规划资源管理1.项目章程2.项目管理计划(质量管理计划、范围基准&am…

C++中返回类型与return语句

C中返回类型与return语句 有、无返回值的函数及其return语句 无返回值(函数声明中,返回值类型为void)的函数,如果其中没有任何return语句也是正确的,编译器会自动在函数结束处补上隐式的return;语句。如果这种void函数…

VOP —— Noise

目录 Turbulent Noise —— 计算1D/3D类型的Noise Anti-Aliased Flow Noise —— 生成抗锯齿噪波 Anti-Aliased Noise —— 生成抗锯齿噪波 Curl Noise —— 创建divergence-free 3D噪波 Curl Noise 2D —— 创建divergence-free 2D噪波 Flow Noise —— 生成1D/3D Perli…

理解Kruskal算法的前提----深入理解并查集【超简单~】

并查集的实现思路 并查集主要分为两个部分:第一部分就是需要找到点对应的祖宗节点,第二部分,是要将属于同一个集合节点的祖宗节点进行统一,也就是结合操作。 Find函数实现 // parent数组用来存储下标值所对应的父节点值 // 比如…

下载安装nvm教程(附带下载切换node.js版本实操)

目录 一、介绍 二、下载 三、安装步骤 四、配置淘宝源 五、测试 六、常用的nvm命令 七、下载切换node版本实操 node版本参考 一、介绍 node版本管理:nvm就是可以切换你的node版本,特别是当node版本过高或者过低时候,就可以用nvm进行…

036:vue导出页面生成pdf文件

第036个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

GIF动图怎么变成jpg动图?一键分解GIF动画

GIF格式图片怎么转换成jpg格式图片?在日常生活中jpg、png转GIF格式非常的常见,那么gif转换成jpg格式应该怎么操作呢?很简单,给大家分享一款gif动态图片制作(https://www.gif.cn/giffenjie)工具,…

Oracle Schema Only账户

概念 Schema Only Accounts是Oracle 18c的新安全功能,19c进一步增强。 19c的增强其实就是允许此账户有管理权限:Ability to Grant or Revoke Administrative Privileges to and from Schema-Only Accounts A schema only account cannot log in to the…

计算机视觉与深度学习-卷积神经网络-纹理表示卷积神经网络-卷积神经网络-[北邮鲁鹏]

这里写目录标题 参考文章全连接神经网络全连接神经网络的瓶颈全连接神经网络应用场景 卷积神经网络卷积层(CONV)卷积核卷积操作卷积层设计卷积步长(stride)边界填充特征响应图组尺寸计算 激活层池化层(POOL)池化操作定义池化操作作用池化层超参数常见池化操作 全连接层(FC)样本…

设计心理学-日常操作心理学 优漫动游

大师解释了产品设计的几个原则后,接着其实就是解释日常生活中用户操作的心理,从深层次的角度,解释为什么产品设计需要依据这些原则。 设计心理学-日常操作心理学 首先书中提出了一个显而易见的概念:用户习惯自行判断产品的功…

算法通关村 | 透彻理解动态规划

1. 斐波那契数列 1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8&#xff0c;13&#xff0c;..... f(n) f(n-1) f(n-2) 代码实现 public static int count_2 0;public int fibonacci(int n){if (n < 2){count_2;return n;}int f1 1;int f2 2;i…

C++入门及简单例子_4

1. 类和对象&#xff1a; #include <iostream> // 包含输入输出流库的头文件class Rectangle { // 定义名为Rectangle的类 private: // 私有成员变量部分double length; // 长度double width; // 宽度public: // 公有成员函数部分Rectangle(double len, double w…

【鸽鸽送书第一期】 | 实现可观测性平台的技术要点是什么?文末参与送书哦!

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《粉丝福利》 《C语言进阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 &#x1f4cb; 前言实现可观测性平台的技术要点是什么&#xff1f;1.兼容全域信号量2.所谓全域信号量有哪些&#x…

Java 对象和类

目录 Java 对象和类 Java中的对象 Java中的类 构造方法 创建对象 访问实例变量和方法 源文件声明规则 Java包 Import语句 一个简单的例子 Java 对象和类 Java作为一种面向对象语言。支持以下基本概念&#xff1a; 多态继承封装抽象类对象实例方法消息解析 本节我们重…

基于AI视觉的表面缺陷检测设备优势显著,加速制造业数智化转型

作为生产制造过程中不可缺少的一步&#xff0c;表面缺陷检测广泛应用于工业领域&#xff0c;包括3C电子、芯片半导体、食品医药、木材等行业。但随着智能化进程加快&#xff0c;制造工厂生产线的质量检测压力加剧&#xff0c;传统人工表面缺陷检测已经无法满足当前社会较高的检…

YOLOv8『小目标』检测指南

前言 目前博主课题组在进行物体部件的异常检测项目&#xff0c;项目中需要先使用 YOLOv8 进行目标检测&#xff0c;然后进行图像切割&#xff0c;最后采用 WinCLIP 模型 进行部件异常检测 但是在实际操作过程中出现问题&#xff0c; YOLOv8 模型目标检测在大目标精确度不错&a…

Mybatis深度解析:从起源到现代应用的全景视角

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

Centos7部署单机版MongoDB

目录 Centos7部署单机版MongoDBMongoDB介绍数据模型索引分布式高可用性查询语言驱动和社区用途缺点 下载并解压安装包创建相关文件夹和文件编辑mongod.conf文件启动mongodb创建管理员用户终止MongoDB服务配置自启动服务关闭SELinux编辑自启动服务文件mongodb服务命令 Centos7部…

spark6. 如何设置spark 日志

spark yarn日志全解 一.前言二.开启日志聚合是什么样的2.1 开启日志聚合MapReduce history server2.2 如何开启Spark history server 三.不开启日志聚合是什么样的四.正确使用log4j.properties 一.前言 本文只讲解再yarn 模式下的日志配置。 二.开启日志聚合是什么样的 在ya…