斐波那契数列和斐波那契数
创始人
2024-04-10 13:07:44
0

一、什么是斐波那契数列

 

        斐波那契数列(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 fibBuffRec (int m) {ArrayList 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;}

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...