斐波那契数列和斐波那契数

news2025/7/9 8:51:08

一、什么是斐波那契数列

 

        斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(≥ 2,∈ N*)

二、求有m位的斐波那契数列

        好啦,此时我们已经知道原理了,那就很容易啦,我们可以使用集合对象ArrayList,泛型为BigInteger的集合对象来存放数列,由于斐波那契数列前两位都是1,所以我们可以把集合对象的前两位单独处理,剩下的就是一个for循环的事情啦。

        代码如下:

    //求前m位的斐波那契数列,并把他们存到ArrayList集合中
    public static ArrayList<BigInteger> fibBuffRec (int m) {
        ArrayList<BigInteger> fibRec = new ArrayList<>(m);
        fibRec.add(BigInteger.ONE);
        fibRec.add(BigInteger.ONE);
        for(int i = 3;i<=m;i++){
            fibRec.add(fibRec.get(i-3).add(fibRec.get(i-2)));
        }
        return fibRec;
    }

三、求第m位的斐波那契数

        那么,我为什么不先把求第m位斐波那契数放到第二个标题呢?其实这里我想说的是,如果m的值比较大的话,比如说m>40的话,如果是在比赛的话,就不建议使用以下方法,因为这样执行过程会比较慢,建议先用上面方法求出有m位的斐波那契数列,然后直接使用ArrayList.get(m),直接获得即可,这样算法的空间度虽然说比较大,但是速度很快。如果m<40的话,就可以直接用递归的方法求第m位斐波那契数。如果m>40的话,需要等待一下才可以出结果了,读者可以自行测验呢。

        代码如下:

    //求第m位斐波那契数列的值,如果m<3直接返回1
    public static BigInteger diGui_fibBuffRec(int m){
        if(m>=3){
            return diGui_fibBuffRec(m-1).add(diGui_fibBuffRec(m-2));
        }
        else
            return BigInteger.ONE;
    }

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

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

相关文章

【考研复试】计算机专业考研复试英语常见问题三(个人选择/学业规划篇)

相关链接&#xff1a; 【考研复试】计算机专业考研复试英语常见问题一&#xff08;家庭/家乡/学校篇&#xff09;【考研复试】计算机专业考研复试英语常见问题二&#xff08;研究方向/前沿技术/本科毕设篇&#xff09;【考研复试】计算机专业考研复试英语常见问题三&#xff0…

C++---哈希

目录 1. unordered系列关联式容器 1.1 unordered_map 1.1.1 unordered_map的介绍 1.1.2 unordered_map的接口说明 1.2 unordered_set 2. 底层结构 2.1 哈希概念 2.2 哈希冲突 2.3 哈希函数 2.4 哈希冲突解决 2.4.1 闭散列 2.4.2 开散列 3. 封装unorder_map和unord…

MySQL增删改查进阶 — 表的设计

文章目录表的设计1.设计思路2.实体固定关系的套路2.1 一对一关系2.2 一对多关系2.3 多对多关系3.总结表的设计 表的设计实际上要做的工作就是明确一个程序里&#xff0c;需要使用几个数据库&#xff0c;几个表&#xff0c;表里都有哪些列。 1.设计思路 先明确实体再明确实体…

6. Design A Web Crawler

title: Notes of System Design No.10 — Design a Web Crawler description: ‘Design a Web Crawler’ date: 2022-05-13 18:01:58 tags: 系统设计 categories: 系统设计 00. What is Web Crawler? Q &#xff1a;uh just for now lets just do html pagesbut your web cr…

Explaining Deepfake Detection by Analysing Image Matching 翻译

点击查看对应的代码 摘要 本文旨在解释深度伪造检测模型在仅由二进制标签做有监督时如何学习图像的伪迹特征。为此&#xff0c;从图像匹配的角度提出如下三个假设。1、深度伪造检测模型表明基于视觉概念的真/假图片既不与源图片相关也不与目标图片相关而是与伪迹图片相关。2、…

全链路压测效能10倍提升的压测工具实践笔记

背景 创业型公司或创新型项目往往团队资源有限&#xff0c;人员能力水平有限&#xff0c;难以投入专业自动化压测人员&#xff1b; 同时部分业务&#xff08;tob/toc场景&#xff09;长期有中小型活动场景带来小规模流量并发&#xff0c;需要产研能长期保障并及时感知和解决网…

GitHub Star70K登顶,字节内部数据结构与算法笔记,限时上线

为什么学算法 不得不说&#xff0c;现在几乎所有的大厂&#xff0c;比如Google、字节、BAT&#xff0c;面试的时候都喜欢考算法、让人现场写代码&#xff0c;那你有没有真正地想过&#xff0c;为什么这些大公司都喜欢考算法呢&#xff1f; 经常有人说&#xff0c;程序员35岁之…

Java毕业设计MVC:基于SSM实现计算机硬件评测交流平台

作者主页&#xff1a;编程千纸鹤 作者简介&#xff1a;Java、前端、Pythone开发多年&#xff0c;做过高程&#xff0c;项目经理&#xff0c;架构师 主要内容&#xff1a;Java项目开发、毕业设计开发、面试技术整理、最新技术分享 收藏点赞不迷路 关注作者有好处 项目编号&…

(杂)网易云歌单导入到apple music

喜欢apple music的简洁&#xff0c;就想着把网易云的歌单捣鼓进去。 获取歌单歌曲列表&#xff1a;https://yyrcd.com/n2s/ 转移歌单&#xff1a;https://soundiiz.com/zh/&#xff0c;首次使用需要注册&#xff0c;免费版只能一次导入200首。 平台选择apple music 登录授权即可…

Linux下 man命令的使用 及 中文man手册的安装

文章目录1. man命令使用2. 安装中文man手册1. man命令使用 man命令是Linux下最核心的命令之一。而man命令也并不是英文单词“man”的意思&#xff0c;它是单词manual的缩写&#xff0c;即使用手册的意思。man命令会列出一份完整的说明。其内容包括命令语法、各选项的意义及相关…

第三章 线性模型

3.1 基本形式 给定由d个属性描述的示例x(x1; x2; x3; … ; xd)。线性模型试图学得一个通过属性的线性组合来进行预测的函数&#xff0c;即 3.2 线性回归 线性回归试图学得一个线性模型尽可能准确地预测实值输出标记。 对于如何确定w和b&#xff0c;均方误差是回归任务中最常…

这样做时间轴,让你的PPT更出彩!

文章目录**▌方法一&#xff1a;美化时间节点****▌方法二&#xff1a;利用图片中的“轴”****▌方法三&#xff1a;时间轴不一定需要“轴”****▌方法四&#xff1a;把时间轴拆成数页****▌总结**已剪辑自: https://zhuanlan.zhihu.com/p/56672211 嗨&#xff0c;大家好&#…

【Linux】一万七千字详解 —— 基本指令(二)

文章目录前言man 指令cp 指令mv 指令echo 指令(含输出重定向)cat 指令(含输入重定向)wc 指令more 指令less 指令head 和 tail 指令(含管道用法)date 指令cal 指令sort 指令find 和 which 和 whereis 指令alias 指令grep 指令top 指令zip 和 unzip 指令结语前言 今天的主要内容…

C语言源代码系列-管理系统之学生选修课程系统

往期文章分享点击跳转>《导航贴》- Unity手册&#xff0c;系统实战学习点击跳转>《导航贴》- Android手册&#xff0c;重温移动开发 &#x1f449;关于作者 众所周知&#xff0c;人生是一个漫长的流程&#xff0c;不断克服困难&#xff0c;不断反思前进的过程。在这个过…

想归隐啦——与自然生活为伴

目录 一、陶渊明-桃花源记 二、梭罗-瓦尔登湖 结庐在人境&#xff0c;而无车马喧。问君何能尔&#xff1f;心远地自偏。采菊东篱下&#xff0c;悠然见南山 一、陶渊明-桃花源记 晋太元中&#xff0c;武陵人捕鱼为业。缘溪行&#xff0c;忘路之远近。忽逢桃花林&#xff0c;夹…

第五届“传智杯”全国大学生计算机大赛(练习赛)传智杯 #5 练习赛] 平等的交易

[传智杯 #5 练习赛] 平等的交易 题目描述 你有 nnn 件道具可以买&#xff0c;其中第 iii 件的价格为 aia_iai​。 你有 www 元钱。你仅能用钱购买其中的一件商道具。当然&#xff0c;你可以拿你手中的道具换取其他的道具&#xff0c;只是这些商道具的价值之和&#xff0c;不…

Vuecli项目结构,及组件的使用

根目录文件介绍 node_modules &#xff1a;管理项目中使用的依赖 public&#xff1a;存放一些静态资源&#xff0c;webpack打包时会放入dist文件夹内。 src&#xff1a;书写vue源代码【重点】 .gitignore &#xff1a;存放需要被git忽略文件&#xff08;不需要保存&#xff09;…

[附源码]java毕业设计青少年计算机知识学习系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

ArcGIS制作横向图例

ArcGIS制作横向图例 右键栅格图层&#xff0c;Symbology——Stretched 切换布局视图——View——Layout View&#xff0c;添加经纬网并调整 Insert——Legend&#xff0c;一路默认点下去 双击图例&#xff0c;Items——Style&#xff0c;进一步调整 选择图中标注的这个样式&am…

ES6 Symbol 内置值及使用场景

Symbol 基本使用 ES6 引入了一种新的原始数据类型 Symbol&#xff0c;表示独一无二的值。它是 JavaScript 语言的第七种数据类型&#xff0c;是一种类似于字符串的数据类型。 Symbol 特点 1) Symbol 的值是唯一的&#xff0c;用来解决命名冲突的问题 2) Symbol 值不能与其…