当前位置: 首页 > news >正文

python实现斐波那契数列详解(黄金分割)

今天给各位分享一个常见的题目:求斐波那契数列前n项分别是什么(也称为黄金分割数列),整个数列需满足一个条件即第三项的值等于前两项相加的和,如第一项是1、第二项是1、第三项是2、第四项是 3、第五项是5...

满足公式:f(n+2)=f(n+1)+f(n)


拿到这个题目很多人不知道思路,接下来我会带领各位一步一步地梳理分析。

首先,我们需要定义一个函数,函数里面至少要有一个变量n来作为传值的对象,即我要求前n项的内容,所以必须要有一个n在函数中作为形式参数。

def fibo(n):pass

函数构件好了之后则需要考虑初始值的问题,我们定义一个初始值的默认值为0作为记录循环轮数的变量,且会不断增长,所以还需要一个空的列表(list)来容纳接下来程序生成的数字序列。

def fibo(n):i = 0fibo_list = []

由于是循环递增的,所以必不可少的就是while循环了,从而实现循环增长,我们定义一个while循环,根据题目要求(第一项和第二项为1),需要设置2个判断:

判断1:当i=0 或 i=1的时候,列表中的前两位都是1

判断2:当i大于等于2的时候,第三项的值等于第一项与第二项的和,并添加到列表

def fibo(n):i = 0fibo_list = []while i < n:if i == 0 or i == 1:fibo_list.append(1)if i >= 2:third_num = fibo_list[-1] + fibo_list[-2]fibo_list.append(third_num)

写到这里,大致框架已经构建好了,只需让循环动起来并输出,调用函数时给n赋值即可,使用i += 1即可实现(i+=1等价于i = i+1)

def fibo(n):i = 0fibo_list = []while i < n:if i == 0 or i == 1:fibo_list.append(1)if i >= 2:third_num = fibo_list[-1] + fibo_list[-2]fibo_list.append(third_num)i += 1print(fibo_list)fibo(10)

以上代码运行后就可以实现从第一项输出到第十项

结果如下:

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

欢迎关注,带你探秘全栈的程序世界 

相关文章:

python实现斐波那契数列详解(黄金分割)

今天给各位分享一个常见的题目&#xff1a;求斐波那契数列前n项分别是什么&#xff08;也称为黄金分割数列&#xff09;&#xff0c;整个数列需满足一个条件即第三项的值等于前两项相加的和&#xff0c;如第一项是1、第二项是1、第三项是2、第四项是 3、第五项是5... 满足公式…...

整合营销和内容营销哪个好,有什么区别

如果想做自媒体运营&#xff0c;不管是品牌还是个体从业者&#xff0c;其实都要学会如何去营销。这个也分为很多种方式&#xff0c;比如整合营销和内容营销。今天&#xff0c;来和大家谈谈整合营销和内容营销哪个好&#xff0c;如何才能将他们应用好? 要想回答这个问题&#x…...

C# | [二进制字符串] 与 [字节数组] 互相转换,一行代码就搞定! - CodePlus系列

C#二进制字符串与字节数组互相转换 文章目录 C#二进制字符串与字节数组互相转换前言示例代码实现思路扩展方法说明引用CodePlus库结束语 前言 开发中有时需要将二进制数据转换为字符串或相反。虽然.NET提供了一些用于二进制数据操作的类库&#xff0c;但是它们的使用有时候会比…...

Java 细节汇总(5)-Comparator#compare() 升降序确定

文章目录 1. Comparator#compare() 升降序确定升序分析 1. Comparator#compare() 升降序确定 Java 语言中 Comparator#compare(T o1, T o2) 方法的实现可以决定排序元素的升序降序&#xff0c;但是许多人对升降序如何确定完全没有概念。要理解升降序是如何确定的&#xff0c;首…...

湖北棒球发展报告·棒球5号位

湖北棒球的发展报告与办法应该考虑以下几个因素&#xff1a; 1. 借助政策支持。湖北棒球要想发展&#xff0c;政策支持是必不可少的。政府需要提供足够的资金和政策支持&#xff0c;以帮助俱乐部提高运营能力和加强比赛的组织。获得政府的政策支持&#xff0c;可以促进湖北棒球…...

使用Eclipse 进行远程 Debug 调试

Eclipse远程调试 Java自身支持调试功能&#xff0c;并提供了一个简单的调试工具&#xff0d;&#xff0d;JDB&#xff0c;类似于功能强大的GDB&#xff0c;JDB也是一个字符界面的调试环境&#xff0c;并支持设置断点&#xff0c;支持线程线级的调试。 由于部署环境的差异性&am…...

记第一次出差得出的经验

文章目录 1&#xff1a;背景2&#xff1a;过程3&#xff1a;心得 1&#xff1a;背景 由于上家公司的某种原因&#xff0c;离职来到了新公司&#xff0c;内中原因不足道也。新公司业务方向暂且不说&#xff0c;入职后&#xff0c;个人看着以前的产品视频学习了不到两周&#xf…...

第12章:视图

一、视图 1.常见的数据库对象 ①表table&#xff1a;表是存储数据的逻辑单元&#xff0c;行和列形式存在。列是字段&#xff0c;行是记录。 ②数据字典&#xff1a;系统表&#xff0c;存放数据库相关信息的表。系统表的数据通常是数据库系统维护。 ③约束constraint&#x…...

Word控件Aspose.Words教程:操作 XPS 和 EPS 文档

Aspose.Words 是一种高级Word文档处理API&#xff0c;用于执行各种文档管理和操作任务。API支持生成&#xff0c;修改&#xff0c;转换&#xff0c;呈现和打印文档&#xff0c;而无需在跨平台应用程序中直接使用Microsoft Word。 Aspose API 支持流行文件格式处理&#xff0c;…...

java并发-Exchanger

## 简介 Exchanger是Java并发包中提供的一个用于线程间数据交换的工具类。它允许在两个并发任务之间进行交换对象&#xff0c;当第一个任务调用exchange()方法时&#xff0c;它会阻塞等待另一个任务也调用这个方法&#xff0c;然后双方交换对象&#xff0c;并返回结果&#xf…...

毫米波雷达系列 | 传统CFAR检测(自适应类)

毫米波雷达系列 | 传统CFAR检测&#xff08;自适应类&#xff09; VI-CFAR [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dV34CKJt-1684215839850)(毫米波雷达系列 传统CFAR检测&#xff08;自适应类&#xff09;.assets/image-20230516131206695…...

【2023/05/19】NFA

Hello&#xff01;大家好&#xff0c;我是霜淮子&#xff0c;2023倒计时第14天。 非确定有限状态自动机&#xff08;NFA&#xff09;是一种模拟复杂系统行为的数学模型 目录 一、基本概念和理论 二、优点和缺点 三、应用场景 四、问题和挑战 五、重要性、作用和使用价值 …...

汽车功能安全

前言 近些年来&#xff0c;功能安全在汽车传统底盘域和动力域的应用已较为成熟&#xff0c;各大汽车企业功能安全意识也逐渐增强。在辅助驾驶和自动驾驶爆发式增长的大趋势下&#xff0c;现代汽车的功能安全在目前尤为复杂的电子电气系统中就显得更为重要&#xff0c;功能安全…...

【Python】数据分析与可视化实践:收支日统计数据可视化的实现

Python数据分析与可视化实践&#xff1a;收支日统计数据可视化的实现 Author&#xff1a;萌狼蓝天 Date&#xff1a;2023-5-7 数据读入与基本处理 上图是原始数据的一部分&#xff0c;存放于excel中&#xff0c;首先使用pd读入数据。读入数据后&#xff0c;删除不是收入&#x…...

Halcon 中_xld算子的概念与应用? select_shape_std 和 select_shape_xld区别?

文章目录 1 halcon中XLD的概念与应用1.1 halcon中什么是XLD?1. 2 XLD相关算子1.2 XLD的应用1.2.1 生成XLD的操作1.2.2 选取特定xld1.2.3 3.3 XLD的合并操作2 select_shape_std 和 select_shape_xld区别2.1 select_shape_std 算子介绍2.2 select_shape_xld算子介绍2.3 select_s…...

[pgrx开发postgresql数据库扩展]7.返回序列的函数编写(3)多行表序列

前文再续&#xff0c;书接上一回。 上一回我们解析了如何通过pgrx编写srf&#xff0c;返回一个TableIterator&#xff0c;但是在具体应用的时候&#xff0c;我们还是针对一条记录返回了一行数据&#xff08;多个字段的一行&#xff0c;也还是一行&#xff09;&#xff0c;并没…...

刚入职,就想跑路了...

刚入职一家公司&#xff0c;想离职又怕找不到新工作。 说实话&#xff0c;这个问题还是蛮常见的&#xff0c;很多时候&#xff0c;入职的公司并不是自己最满意的&#xff0c;即使是最满意的&#xff0c;入职后总会遇到各种各样的不顺心&#xff0c;公司制度不规范啊&#xff0…...

如何让技术架构师具有预知未来业务发展的能力

大家好&#xff0c;今天我们来分享业务架构&#xff0c;但是我们并不是以产品经理角度讲述一个业务架构是什么以及如何做&#xff1f;而是以一个技术架构师的角度&#xff0c;讲述如何承接业务架构或在没有业务架构的时候&#xff0c;如何判断业务变化趋势而对系统架构提前做出…...

卷麻了,新来的00后实在是太卷了...

在程序员职场上&#xff0c;什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事&#xff0c;我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事&#xff0c;可遇不可求&#xff0c;向他学习还来不及呢。 真正让人反感的&#xff0c;是技术平平&…...

单片机--实战练习

目录 【1】GPIO 1.定义 2.应用 I - Input - 输入采集 O - Output - 输出控制 ​编辑​编辑 3.GPIO结构框图 4.功能描述 输入功能 输出功能 5.相关寄存器 【2】点亮一盏LED灯 1.实验步骤 2.编程实现 3.编译下载 4.复位上电 练习&#xff1a;实现LED灯闪烁…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...