首页 > 其他分享 >斐波那契数

斐波那契数

时间:2023-01-06 15:35:51浏览次数:45  
标签:契数 13 数列 斐波 a2 anan a2n 21

一、背景与定义

       有这样一个数列1,1,2,3,5,8,13,21,34,55,89,144,……这个数列前两个数均为1,从第3项开始,每一项都等于前两项之和。

 

 

       数列最早被提出是,公元前200年左右,印度数学家Gopala,他在研究箱子包装物件长度恰好为1和2时的方法数时首先描述了这个数列。

       也就是这个问题:

       有n个台阶,你每次只能跨一阶或两阶,上楼有几种方法?

       而最早研究这个数列的当然就是斐波那契(Leonardo Fibonacci)了,生于公元1170年,卒于1240年,籍贯大概是比萨)。

       1202年,他撰写了《珠算原理》(Liber Abaci)一书。他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点相当于今日的阿尔及利亚地区,列昂纳多因此得以在一个阿拉伯老师的指导下研究数学。他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯研究数学。

        他当时是为了描述如下情况的兔子生长数目:

        第一个月初有一对刚诞生的兔子,

        第二个月之后(第三个月初)它们可以生育,

        每月每对可生育的兔子会诞生下一对新兔子,

        兔子永不死去。

 

         这个数列出自他赫赫有名的大作《计算之书》,后来就被广泛的应用于各种场合了。

         斐波纳契数列以如下被以递归的方法定义: ;这个数列从第三项开始,每一项都等于前两项之和。

        递推公式:

 

二、斐波那契数列及其特点

       斐波那契数列通项公式:斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、……

       菲波纳契数列既谓神奇数字,上述数字自有神奇之处,其特点包括:

       1、从第三项起,任何一个数字均是其前两个数字的和数,例如1+1=2;1+2=3;2+3=5;3+5=8;5+8=13;8+13=21;13+21=34等。

       2、任何两个相隔的数字彼此顺序相除或倒转相除,所得数字分别接近0.382及2.618。

               接近0.382比率,例如:8÷21=0.381;13÷34=0.382;21÷55=0.382等。

               接近2.618比率,例如:21÷8=2.625;34÷13=2.615;55÷21=2.619等。

        3、除首四个数字(1、1、2、3)外,两个相邻数字彼此相除,所得数字分别接近0.618(黄金分割比例)及1.618比率。

               接近0.618比率,例如:5÷8=0.625;8÷13=0.615;13÷21=0.619等。

               接近1.618比率,例如:8÷5=1.6;13÷8=1.625;21÷13=1.615等。

三、通项公式

       

四、性质

        1.性质1:前n项和:sn=a1+a2+a3+......+an=an+2-1

         证明:an=an+2-an+1

                   an-1=an+1-an

                   an-2=an-an-1

                     .

                     .

                     .

                     a1=a3-a2

                     累和:sn=a1+a2+a3+......+an=an+2-a2

                     因为a2=1

                     所以sn=a1+a2+a3+......+an=an+2-1

        2.性质2:奇数项和:a1+a3+a5+......+an-1=a2n

                        偶数项和:a2+a4+a6+......+a2n=a2n+1-1

           证明:①a1=a2

                         a3=a4-a2

                         a5=a6-a4

                          .

                         a2n-1=a2n-a2n-2

                         累和:a1+a3+a5+......+an-1=a2n

                      ②a2=a3-a1

                         a4=a5-a3

                          .

                         a2n=a2n+1-a2n-1

                         累和:a2+a4+a6+......+a2n=a2n+1-1

         3.性质3:平方性质:an2=anan+1-anan-1

                        平方和性质:a12+a22+......+an2=anan+1

             证明:①an+2=an+1+an

                           an+1=an+2-an

                           两边同时乘an+1:an+12=an+2an+1-an+1an

                           令n+1=n时:an2=an+1an-anan-1

                       ②由①可知:

                           a12=a2a1

                          a22=a3a2-a2a1

                          a32=a4a3-a3a2

                          .

                          .

                          an2=an+1an-anan-1

                         累和:a12+a22+......+an2=anan+1

         4.性质4:中项性质:anan+2-an+12=(-1)n+1

                                          3an=an-2+an+2

            证明: ①归纳

                          anan+2=an+12+(-1)n+1

                          a1a3-a22=1

                          a2a4-a32=-1

                          a3a5-a42=1

                          a4a6-a52=-1。。。。。。

                          猜测:anan+2-an+12=(-1)n+1

                        ②an-2=an-an-1

                            an+2=an+an+1

                           又因为an+1=an+an-1

                           所以an+2=2a1+an-1

                           所以an-2+an+2=3an

         5.性质5:模除周期性(余数列周期性):2、3、4则3、8、6

                        解释:(1)被2除的余数列周期为3:1,1,0,1,1,0......

                                   (2)被3除的余数列周期为8:1,1,2,0,2,2,1,0,1,1,2,0,2,2,1,0......

                                   (3)被4除的余数列周期为6:1,1,2,3,1,0,1,1,2,3,1,0,1,1,2,3,1,0......

         6.性质6:质数数量

                        每3个连续的数中有且只有一个被2整除;

                        每4个连续的数中有且只有一个被3整除;

                        每5个连续的数中有且只有一个被5整除;

                        每6个连续的数中有且只有一个被8整除;

                        每7个连续的数中有且只有一个被13整除;

五、经典实例

        1.代码实现

         

 

        2.矩阵快速幂实现

       

 

斐波那契的边界条件是 F(0)=0 和 F(1)=1。当 n>1 时,每一项的和都等于前两项的和,因此有如下递推关系:F(n)=F(n-1)+F(n-2)

  (1)递归思想

递归的思想是把一个大型复杂问题层层转化为一个与原问题规模更小的问题,问题被拆解成子问题后,递归调用继续进行,直到子问题无需进一步递归就可以解决的地步为止。

 

 

 其时间复杂度为O(2^N),由于其时间复杂度太高,在实际应用中用武之地并没有想象的那么多,要是真写个这种程序,老板应该是不容下你了。

  (2)空间换时间

动态开辟空间将计算出的数据记录下来,避免重复计算,使用空间换时间。

时间复杂度O(n),空间复杂度O(n)。

 

 

 这里使用动态开辟空间而不用数组,因为数组的大小有限制。

其缺点依然十分明显,其空间复杂度较高,开辟堆区内存,若管理不当,甚至可能造成内存泄漏。

  (3)动态规划

本方法是在方法二的基础上节省空间。利用滚动数组思想,将空间复杂度由O(n)优化为O(1)。时间复杂度依然为O(n)。

 

 

 基本掌握这个方法就可以了。

  (4)通项公式

    

 

 

      

 

 

   (5)矩阵快速幂

  

       

      

 

 

       时间复杂度为O(logn),空间复杂度为O(1)。

  总结:方法一和方法二尽量不要使用。

  参考来自百科、博客,仅限内部使用。

 

 

 

 

 

 

 

 

 

 

 

标签:契数,13,数列,斐波,a2,anan,a2n,21
From: https://www.cnblogs.com/ddfy198811/p/17029449.html

相关文章

  • 509. 斐波那契数列
    问题描述https://leetcode.cn/problems/fibonacci-number/description/解题思路最经典的递归问题,它的问题描述就是递归的。先考虑参数和返回值。参数就是n,返回值是fib(......
  • 求第n个斐波那契数。(用递归和循环的方法对比)
    写这个代码的过程中出现的问题及改进方法:用递归实现#include<stdio.h>intFib(intn){if(n<=2)return1;elsereturnFib(n-1)+Fib(n-2);}......
  • 1、尾递归及优化 ,例:斐波那契数列 2、递归转循环,蹦床函数
    1、函数调用自身,即为递归,在return时调用自身,即为尾递归;递归非常消耗内存,其原因是需要同时保存成成百上千的调用帧,这容易发生栈溢出错误;但是尾递归只存在一个调用帧,所以永......
  • 斐波那契公约数证明
    斐波那契公约数证明已知\(F_n\)为斐波那契数列,求证:\(∀n,m∈Z^+,(F_n,\F_m)=F_{(n,\m)}\)证明:令\(n<m\),\(F_n=F_1*a,\F_{n+1}=F_2*b\)\(F_{......
  • 【编程实践】手把手带你利用Python简单实现斐波那契数列
    前言什么是斐波那契数列?斐波那契数列的提出者,是意大利数学家列昂纳多·斐波那契(LeonardoFibonacci),生于公元1170年,卒于1250年,籍贯是比萨。他被人称作“比萨的列昂纳多”。当......
  • C语言求第n个斐波那契数(不考虑溢出)
      ​​//求第n个斐波那契数(不考虑溢出)  //斐波那契数列:前两项数字之和等于第三个数字 例如:1,1,2,3,5,8,13,​21,34,55...../* //用递归方法计算第n个斐波那契数不明智......
  • 【算法编程】和为 K 的最少斐波那契数字数目
    【算法编程】和为K的最少斐波那契数字数目  给定k个数,其满足斐波那契性质,从中挑选一部分数字(每个数只能被挑选1次)使得它们的和恰巧为k。目标是求出最少能够挑选几个数满......
  • Python-实现斐波那契数列
    代码实现如下:#-*-coding:utf-8-*-#定义函数deffab(n):#判断n的有效性ifn<=0:return'传递的参数必须是大于0的正整数!'#当n为1时......
  • 用生成函数推导斐波那契数列的通项公式
    定义数列$\{a_i\}$的普通生成函数$\rm(OGF,\ordinary\generating\function)$为$$f(x)=\sum^{\infty}_{i=0}a_ix^{i}\.$$考虑$\{a_i=1\}$的$\rmOGF......
  • 斐波那契数列(二)
        斐波那契数列在很多问题上得到了应用。下面通过一些具体的实例加以说明。【例1】钢管切割问题描述给一根长度为n的钢管,问最多能切割成几段钢管,使得截成的钢......