一、什么是斐波那契数列

斐波那契数列(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直接返回1public static BigInteger diGui_fibBuffRec(int m){if(m>=3){return diGui_fibBuffRec(m-1).add(diGui_fibBuffRec(m-2));}elsereturn BigInteger.ONE;}

斐波那契数列和斐波那契数相关推荐

  1. matlab斐波那契数列画图,斐波拉契数列 斐波那契数列 matlab程序

    斐波那契数列数列从第3项开始,每一项都等于前两项之和. 例子:数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,25 ...

  2. c语言斐波那契数列_斐波那契数列之美

    美妙绝伦的基本算法 Image by Gerd Altmann on Pixabay 在研究和进行有关数据处理,计算相关计算机或数学运算的研究时,我们遇到了很多算法. 即使有时候我们不太喜欢数学,但我 ...

  3. python中斐波那契数列_斐波那契数列–在Python,JavaScript,C ++,Java和Swift中进行了解释...

    python中斐波那契数列 by Pau Pavón 通过保罗·帕文(PauPavón) The Fibonacci sequence is, by definition, the integer s ...

  4. 斐波那契数列——输出斐波那契数列的第n项

    **斐波那契数列有两种形式 1.从0开始 0 1 1 2 3 5  8........ 2.从1开始 1 1 2 3 5 8 13......... 第一二项固定,后面一项等于前面两项的和. *要输出 ...

  5. 通过c语言来实现斐波那契数列。斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13...这个数列从第3项开始,每一项都等于前两项之和。

    斐波那契数列是一组第一位和第二位为1,从第三位开始,后一位是前两位和的一组递增数列, 像这样的:0.1.1.2.3.5.8.13.21.34.55...... 这个数列从第3项开始,每一项都等于前两项 ...

  6. python实现斐波那契数列_斐波那契数列:python实现和可视化

    1 说明 ==== 1.1 斐波那契数列的介绍. 1.2 斐波那契数列是上帝的指纹,大自然中随处可见,目前广泛应用到黄金分割线的布局美和股市等预测等等. 1.3 斐波那契数列的Python的matpl ...

  7. c语言斐波那契数列_斐波那契数列趣闻

    问 题 提 出 著名的兔子繁殖问题 意大利著名数学家斐波那契曾经在他的<算盘全书>一书中提出了一个有趣的问题:如果有一对兔子,每一个月都生下一对小兔,而它们所生下的每一对小兔在出生后的第三 ...

  8. 斐波那契数列_菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。

    描述 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和.给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少. 格式 输入格式 第1行是测 ...

  9. 斐波那契数列的四种实现

    来自:Crossin的编程教室 孔乙己自己知道不能和他们谈天,便只好向 Intern 说话.有一回对我说道,"你写过代码么?"我略略点一点头.他说,"写过代码,--我便考 ...

最新文章

  1. poj 2063完全背包
  2. 如何向亲戚们解释人工智能可以干啥?
  3. selenium环境搭建1
  4. jquery获取data-*返回undefined小记
  5. 高级数据结构与算法 | 哈希 :哈希冲突、负载因子、哈希函数、哈希表、哈希桶
  6. Redis问的太深入,面试官说:“你先回去等通知吧“!
  7. arcgis python 百度网盘 视频_arcgis软件零基础入门视频教程27讲百度网盘链接
  8. Java2022面试题集锦
  9. go get报错 i/o timeout的解决办法
  10. FlashFXP如何破解
  11. 【原创抖音互动无人直播项目大鱼吃小鱼,进入直播间的用户开始吃鱼,吃的鱼越多等级越高越厉害】
  12. java程序实现短信发送(可调用免费短信接口)
  13. To invoke and to begin invoke, that is a question.
  14. Ospf Forwarding address路由选路的影响
  15. 图形之可见面判别算法
  16. 如何看待程序员的薪资倒挂现象
  17. nlp--常用分词方法
  18. ipv4v6双栈技术_IPv6过渡技术之双栈技术
  19. 腾讯正式推出密码保护卡,貌似对火狐用户重视不够
  20. Mandelbrot 并行实现

热门文章

  1. Sentinel 相关知识点整理
  2. 北京华为HCIE网络工程师快速完成设备流量控制和风暴控制-ielab网络实验室
  3. ffmpeg 的下载与使用
  4. QRCode生成二维码和解析二维码
  5. SUBTOTAL函数的应用
  6. [10] JMeter-察看结果树,你知道都有哪些功能吗?
  7. 智能扫地机器人好用吗?优选扫地机器人排名推荐
  8. 好网线与坏网线的区别,教你几招鉴别技巧
  9. 判断平面多边形的凹凸性
  10. Android基础知识(十)之多媒体