imtoken钱包下载app
数字资产服务平台

imtoken钱包下载app是全球著名的数字资产交易平台之一,主要面向全球用户提供比特币、莱特币、以太币等数字资产的币币和衍生品交易服务。

imtoken苹果版钱包|fibonacci数列

时间:2024-03-13 22:41:14

斐波那契数列_百度百科

数列_百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心收藏查看我的收藏0有用+10斐波那契数列播报讨论上传视频称黄金分割数列本词条由中国科学院大学数学科学学院 参与编辑并审核,经科普中国·科学百科认证 。斐波那契数列(Fibonacci sequence),又称黄金分割数列 [1],因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称“兔子数列”,其数值为:1、1、2、3、5、8、13、21、34……在数学上,这一数列以如下递推的方法定z义:F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)。 [2]中文名斐波那契数列外文名Fibonacci sequence别    名黄金分割数列、兔子数列表达式F[n]=F[n-1]+F[n-2](n>=2,F[0]=1,F[1]=1)提出者莱昂纳多·斐波那契提出时间1202年适用领域代数应用学科数学目录1定义2由来3通项公式▪递推公式▪通项公式内容▪通项公式推导4特性▪平方与前后项▪与集合子集数量的关系▪奇数项求和▪偶数项求和▪平方求和▪隔项关系▪两倍项关系▪其他公式5应用▪与黄金分割比的关系▪杨辉三角▪矩形面积▪质数数量▪尾数循环▪自然界中“巧合”▪数字谜题▪影视作品中的斐波那契数列6推广▪斐波那契—卢卡斯数列▪广义斐波那契数列7相关的数学问题▪排列组合▪兔子繁殖问题定义播报编辑斐波那契数列是指这样一个数列:1,1,2,3,5,8,13,21,34,55,89……这个数列从第3项开始 ,每一项都等于前两项之和。由来播报编辑在数学历史上,欧洲黑暗时期过后,第一位有影响的数学家是斐波那契(L.Fibonacci,1170一1250)。他早年就随其父在北非师从阿拉伯人学习算学,后又游历地中海沿岸诸国,回意大利后写成《算经[xq2] 》,也翻译成《算盘书》。这部很有名的著作主要是一些源自古代中国、印度和希腊的数学问题的汇集,内容涉及整数和分数算法、开方法、二次和三次方程以及不定方程。特别是,在1228年的《算经》修订版上载有如下“兔子问题”: [3]如果每对兔子(一雄一雌)每月能生殖一对小兔子(也是一雄 一[xq3] 雌,下同),每对兔子第一个月没有生殖能力,但从第二个 月[xq4] 以后便能每月生一对小兔子.假定[xq5] 这些兔子都没有死亡现象,那么从第一对刚出生的兔子开始,12 个月以后会有多少 对[xq6] 兔子呢? 解释说明为:一个月[xq7] :只有一对兔子;第二个月: 仍然只有一对兔子;第三个月:这对兔子生了一对小兔子, 共有 1+1=2 对兔子.第四个月[xq8] :最初的一对兔子又生一对兔 子,共有 2+1=3 对兔子.则由第一个月到第十二个月兔子的 对数分别是:1,1,2,3,5,8,13,21,34,55,89,144, ……,后 人[xq9] 为了纪念提出兔子繁殖问题的斐波纳契, 将这个兔子数 列[xq10] 称为斐波那契数列, 即把 1,1,2,3,5,8,13,21,34……这样的数列称为斐波那契数列。 [4]通项公式播报编辑递推公式斐波那契数列:1,1,2,3,5,8,13,21,34,55,89…… ,以如下被以递归的方法定义:从第三项开始,每一项都等于前两项之和,显然这是一个线性递推数列。通项公式内容⑴如上,又称为“比内公式”,是用无理数表示有理数的一个范例。且由上式得到的值必为正整数。 [5]注:此时⑵ 通项公式推导(1)方法一:利用特征方程(线性代数解法)线性递推数列的特征方程为:解得:则:由公式得:解得(2)方法二:待定系数法构造等比数列1(初等代数解法)设常数,使得则时,有:联立以上个式子,得:上式可化简得:那么:(这是一个以为首项、以为末项、为公比的等比数列的各项的和)。, 的解为,则(3)方法三:待定系数法构造等比数列(初等代数解法)设得构造方程解得所以:由(1)、(2)式得:令:化简可得:(4)方法四:母函数法对于斐波那契数列,有:()令那么有:因此.不难证明:因此再利用展开式于是就可以得其中因此可以得到:特性播报编辑平方与前后项从第二项开始(构成一个新数列,第一项为1,第二项为2,……),每个偶数项的平方都比前后两项之积多1,每个奇数项的平方都比前后两项之积少1。如:第二项 1 的平方比它的前一项 1 和它的后一项 2 的积 2 少 1,第三项 2 的平方比它的前一项 1 和它的后一项 3 的积 3 多 1。(注:奇数项和偶数项是指项数的奇偶,而并不是指数列的数字本身的奇偶,比如从数列第二项 1 开始数,第 4 项 5 是奇数,但它是偶数项,如果认为 5 是奇数项,那就误解题意,怎么都说不通)证明经计算可得:与集合子集数量的关系斐波那契数列的第n+2项同时也代表了集合中所有不包含相邻正整数的子集个数。奇数项求和偶数项求和平方求和隔项关系两倍项关系其他公式如果,,,,……,则有:因,,则有:应用播报编辑与黄金分割比的关系这样一个完全是自然数的数列,通项公式是用无理数来表达的。而且当 趋向于无穷大时,前一项与后一项的比值越来越逼近黄金分割0.618(或者说后一项与前一项的比值小数部分越来越逼近 0.618)。 [2]………………越到后面, 的比值越接近黄金比。证明:由,两边同时除以由 得到: 若的极限存在,设其极限为 , 则 杨辉三角将杨辉三角左对齐,成图1所示排列,将同一斜行的数加起来,即得一数列 1、1、2、3、5、8、……公式表示如下:矩形面积斐波那契数列与矩形面积的生成相关,由此可以导出一个斐波那契数列的一个性质。斐波那契数列前几项的平方和可以看做不同大小的正方形,由于斐波那契的递推公式,它们可以拼成一个大的矩形。这样所有小正方形的面积之和等于大矩形的面积。则可以得到如下的恒等式:质数数量斐波那契数列的整除性与质数生成性每3个连续的数中有且只有一个被 2 整除,每4个连续的数中有且只有一个被 3 整除,每5个连续的数中有且只有一个被 5 整除,每6个连续的数中有且只有一个被 8 整除,每7个连续的数中有且只有一个被 13 整除,每8个连续的数中有且只有一个被 21 整除,每9个连续的数中有且只有一个被 34 整除,.......我们看到第5、7、11、13、17、23位分别是质数:5,13,89,233,1597,28657(第19位不是)尾数循环斐波那契数列的个位数:一个60步的循环:11235,83145,94370,77415,61785,38190,99875,27965,16730,33695,49325,72910…进一步,斐波那契数列的最后两位数是一个300步的循环,最后三位数是一个1500步的循环,最后四位数是一个15000步的循环,最后五位数是一个150000步的循环。自然界中“巧合”斐波那契数列表面看来似乎简单有趣,然而人们发现该数列不仅与黄金分割数,组合数学及概率论等一系列深刻的数学问题关系密切,甚至发现植物枝权与叶序分布、菠萝纹理与蜂房结构等大量的自然现象也遵从斐波那契数列的奇妙构造。 [6]例如,树木的生长,由于新生的枝条,往往需要一段“休息”时间,供自身生长,而后才能萌发新枝。所以,一株树苗在一段间隔,例如一年,以后长出一条新枝;第二年新枝“休息”,老枝依旧萌发;此后,老枝与“休息”过一年的枝同时萌发,当年生的新枝则次年“休息”。这样,一株树木各个年份的枝桠数,便构成斐波那契数列。这个规律,就是生物学上著名的“鲁德维格定律”。另外,观察延龄草、野玫瑰、南美血根草、大波斯菊、金凤花、耧斗菜、百合花、蝴蝶花的花瓣,可以发现它们花瓣数目具有斐波那契数:3、5、8、13、21……其中百合花花瓣数目为 3,梅花 5 瓣,飞燕草 8 瓣,万寿菊 13 瓣,向日葵 21 或 34 瓣,雏菊有 34、55 和 89 三个数目的花瓣。斐波那契螺旋:在大自然里存在着许多斐波那契螺旋线形态,向日葵花盘有着两组紧密盘旋的螺旋线,一组按照顺时针旋转的数目为21,另一组按照逆时 针旋转的数目为3 4,正 好是斐波 那契数列中相邻的两个 数且比值接近黄金分割比,而且排列的种子以中心为点四面发散形成的角度接近于黄金角;银河系中的四条主旋臂旋转分开组成大约为12度的角度,它所反映出来的螺旋形状和斐波那契螺旋线几乎完全相同;鹦鹉螺外壳截面形状为典型的斐波那契螺旋形,被认为是以斐氏数列形成的最完美的螺旋线。 [7]事实上许多常见的植物,如我们食用的青菜、包心菜、芹菜等的叶子排列也具有这个特性。尽管这些顺逆螺旋的数目并不固定,但它们也并不随机,它们是斐波那契序列中的相邻数字。这些植物懂得斐波那契数列吗?当然并非如此,它们只是按照自然的规律才进化成这样。这似乎是植物排列种子的“优化方式”,它能使所有种子具有差不多的大小空间却又疏密得当,不至于在圆心处挤了太多的种子而在圆周处却又稀稀拉拉。叶子的生长方式也是如此,对于许多植物来说,每片叶子从中轴附近生长出来,为了在生长的过程中一直都能最佳地利用空间(要考虑到叶子是一片一片逐渐地生长出来,而不是一下子同时出现的),每片叶子和前一片叶子之间的角度应该是222.5度,这个角度被称为“黄金角度”,因为它和整个圆周360度之比是黄金分割数1.618033989⋯⋯的倒数,而这种生长方式就决定了斐波那契螺旋的产生。向日葵的种子排列形成的斐波那契螺旋有时能达到89条,甚至144条。 [8]数字谜题三角形的三边关系定理和斐波那契数列的一个联系:现有长为 144 cm 的铁丝,要截成n小段(n≥3),每段的长度不小于 1 cm,如果其中任意三小段都不能拼成三角形,则n的最大值为:由于形成三角形的充要条件是任何两边之和大于第三边,因此不构成三角形的条件就是存在两边之和不超过另一边。截成的铁丝最小为 1,因此可以放 2 个 1,第三条线段就是 2(为了使得n最大,因此要使剩下来的铁丝尽可能长,因此每一条线段总是前面的相邻2段之和),依次为:1、1、2、3、5、8、13、21、34、55,以上各数之和为 143,与 144 相差 1,因此可以取最后一段为 56,这时 n 达到最大为 10。我们看到,“每段的长度不小于 1”这个条件起了控制全局的作用,正是这个最小数1 产生了斐波那契数列,如果把 1 换成其他数,递推关系保留了,但这个数列消失了。这里,三角形的三边关系定理和斐波那契数列发生了一个联系。在这个问题中,这个143是斐波那契数列的前项和,我们是把144超出143的部分加到最后的一个数上去,如果加到其他数上,就有3条线段可以构成三角形了。影视作品中的斐波那契数列斐波那契数列在欧美可谓是尽人皆知,于是在电影这种通俗艺术中也时常出现,比如在风靡一时的《达芬奇密码》里它就作为一个重要的符号和情节线索出现,在《魔法玩具城》里又是在店主招聘会计时随口问的问题。可见此数列就像黄金分割一样流行。可是虽说叫得上名,多数人也就背过前几个数,并没有深入理解研究。在电视剧中也出现斐波那契数列,比如:日剧《考试之神》第五回,义嗣做全国模拟考试题中的最后一道数学题~在FOX 热播美剧《Fringe》中更是无数[xq1] 次引用,甚至作为全剧宣传海报的设计元素之一。推广播报编辑斐波那契—卢卡斯数列卢卡斯数列 1、3、4、7、11、18…,也具有斐波那契数列同样的性质。(我们可称之为斐波那契—卢卡斯递推:从第三项开始,每一项都等于前两项之和)卢卡斯数列的通项公式为这两个数列还有一种特殊的联系(如下表所示),,及12345678910…斐波那契数列F(n)11235813213455…卢卡斯数列L(n)13471118294776123…138215514437798725846765…类似的数列还有无限多个,我们称之为斐波那契—卢卡斯数列。如1,4,5,9,14,23…,因为1,4开头,可记作F[1,4],斐波那契数列就是F[1,1],卢卡斯数列就是F[1,3],斐波那契—卢卡斯数列就是F[a,b]。斐波那契—卢卡斯数列之间的广泛联系:①任意两个或两个以上斐波那契—卢卡斯数列之和或差仍然是斐波那契—卢卡斯数列。如:F[1,4]n+F[1,3]n=F[2,7]n,F[1,4]n-F[1,3]n=F[0,1]n=F[1,1](n-1),n12345678910…F[1,4]n14591423376097157…F[1,3]n13471118294776123…F[1,4]n-F[1,3]n0112358132134…F[1,4]n+F[1,3]n27916254166107173280…②任何一个斐波那契—卢卡斯数列都可以由斐波那契数列的有限项之和获得,如n12345678910…F[1,1](n)11235813213455…F[1,1](n-1)0112358132134…F[1,1](n-1)0112358132134…F[1,3]n13471118294776123…黄金特征与孪生斐波那契—卢卡斯数列斐波那契—卢卡斯数列的另一个共同性质:中间项的平方数与前后两项之积的差的绝对值是一个恒值,斐波那契数列:卢卡斯数列:|3*3-1*4|=|4*4-3*7|=…=5F[1,4]数列:|4*4-1*5|=11F[2,5]数列:|5*5-2*7|=11F[2,7]数列:|7*7-2*9|=31斐波那契数列这个值是1最小,也就是前后项之比接近黄金比例最快,我们称为黄金特征,黄金特征1的数列只有斐波那契数列,是独生数列。卢卡斯数列的黄金特征是5,也是独生数列。前两项互质的独生数列只有斐波那契数列和卢卡斯数列这两个数列。而F[1,4]与F[2,5]的黄金特征都是11,是孪生数列。F[2,7]也有孪生数列:F[3,8]。其他前两项互质的斐波那契—卢卡斯数列都是孪生数列,称为孪生斐波那契—卢卡斯数列。广义斐波那契数列斐波那契数列的黄金特征1,还让我们联想到佩尔数列:1,2,5,12,29,…,也有|2*2-1*5|=|5*5-2*12|=…=1(该类数列的这种特征值称为勾股特征)。佩尔数列Pn的递推规则:据此类推到所有根据前两项导出第三项的通用规则:,称为广义斐波那契数列。当时,我们得到斐波那契—卢卡斯数列。当时,我们得到佩尔—勾股弦数(跟边长为整数的直角三角形有关的数列集合)。当时,我们得到等差数列。其中时,我们得到自然数列1,2,3,4,5…自然数列的特征就是每个数的平方与前后两数之积的差为 1(等差数列的这种差值称为自然特征)。具有类似黄金特征、勾股特征、自然特征的广义——斐波那契数列 。当,时,我们得到等比数列1,2,4,8,16…相关的数学问题播报编辑排列组合有一段楼梯有10级台阶,规定每一步只能跨一级或两级,要登上第 10 级台阶有几种不同的走法?这就是一个斐波那契数列:登上第一级台阶有一种登法;登上两级台阶,有两种登法;登上三级台阶,有三种登法;登上四级台阶,有五种登法……1,2,3,5,8,13…… 所以,登上十级,有 89 种走法。类似的,一枚均匀的硬币掷10次,问不连续出现正面的可能情形有:答案是种。求递推数列的通项公式由数学归纳法可以得到:,将斐波那契数列的通项式代入,化简就得结果。兔子繁殖问题一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死:我们不妨拿新出生的一对小兔子分析一下:第一个月小兔子没有繁殖能力,所以还是一对两个月后,生下一对小兔对数共有两对三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对……依次类推可以列出下表:经过月数01234567891011…幼仔对数1011235813213455成兔对数01123581321345589总体对数1123581321345589144幼仔对数=前月成兔对数成兔对数=前月成兔对数+前月幼仔对数总体对数=本月成兔对数+本月幼仔对数可以看出幼仔对数、成兔对数、总体对数都构成了一个数列。这个数列有关十分明显的特点,那是:前面相邻两项之和,构成了后一项,即斐波那契数列。新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000

斐波那契数列(Fibonacci sequence)及相关结论 - 知乎

斐波那契数列(Fibonacci sequence)及相关结论 - 知乎切换模式写文章登录/注册斐波那契数列(Fibonacci sequence)及相关结论刘金堂一、定义斐波那契数列(Fibonacci sequence),又称黄金分割数列,因意大利数学家莱昂纳多·斐波那契(Leonardo Fibonacci)1202年以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、55、89…… 这个数列从第 3 项开始,每一项都等于前两项之和。在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N) 二、通项公式1、递推公式:\begin{cases}F(0)=0\\F(1)=1\\F(n)=F(n - 1)+F(n - 2) \end{cases}\qquad(n\in N)\\2、通项公式: {F_n =\frac{1}{\sqrt{5}}\left[\left(\frac{1+\sqrt{5}}{2}\right)^{n}-\left(\frac{1-\sqrt{5}}{2}\right)^{n}\right]} \\证明一:(构造等比数列)设常数r和s满足: {F_{n}-r F_{n-1}=s\left(F_{n-1}-r F_{n-2}\right)} 即:F_{n}=(s+r) F_{n-1}-s r F_{n-2} 则r和s满足如下条件:\begin{aligned} &s+r=1 \\ &s r=-1 \end{aligned} \\由韦达定理知,r和s为一元二次方程 x^2-x-1=0 的两个根,不妨令r=\frac{1-\sqrt{5}}{2} \quad s=\frac{1+\sqrt{5}}{2} \\当 n\geq3 时,有\cfrac{F_{n}-r F_{n-1}}{F_{n-1}-r F_{n-2}}=s \\即\begin{gathered} \cfrac{F_{3}-r F_{2}}{F_{2}-r F_{1}}=s \\ \cfrac{F_{4}-r F_{3}}{F_{3}-r F_{2}}=s \\ \vdots \\ \cfrac{F_{n}-r F_{n-1}}{F_{n-1}-r F_{n-2}}=s \end{gathered} \\上式共 n-2 个式子,累乘得\cfrac{F_{n}-r F_{n-1}}{F_{2}-r F_{1}}=s^{n-2} \\由于 s = 1 - r , F_1 = F_2 = 1 ,所以有F_{n}=s^{n-1}+r F_{n-1} \\将 F_{n-1} , F_{n-2} 直到 F_{3} 按照上述递推关系式进行展开有\begin{aligned} F_{n} &=s^{n-1}+r F_{n-1}=s^{n-1}+r\left(s^{n-2}+r F_{n-2}\right) \\ &=s^{n-1}+r s^{n-2}+r^{2} F_{n-2}=s^{n-1}+r s^{n-2}+r^{2}\left(s^{n-3}+r F_{n-3}\right) \\ &=s^{n-1}+r s^{n-2}+r^{2} s^{n-3}+r^{3} F_{n-3}=\ldots \\ &=s^{n-1}+r s^{n-2}+r^{2} s^{n-3}+\ldots+r^{n-2} s+r^{n-1} F_{1} \\ &=s^{n-1}+r s^{n-2}+r^{2} s^{n-3}+\ldots+r^{n-2} s+r^{n-1} \end{aligned} \\可见 F_n 是首项为 s^{n-1} ,公比为 \cfrac{r}{s} ,末项为 r^{n-1} 的等比数列求和,根据等比数列求和公式有F_{n}=\frac{s^{n-1}\left(1-\left(\cfrac{r}{s}\right)^{n}\right)}{1-\cfrac{r}{s}}=\cfrac{s^{n}-r^{n}}{s-r} \\将r和s代入得斐波那契数列的通项公式F_n为\begin{aligned} F_{n} &=\cfrac{s^{n}-r^{n}}{s-r}=\cfrac{\left(\cfrac{1+\sqrt{5}}{2}\right)^{n}-\left(\cfrac{1-\sqrt{5}}{2}\right)^{n}}{\cfrac{1+\sqrt{5}}{2}-\cfrac{1-\sqrt{5}}{2}} \\ &=\frac{1}{\sqrt{5}}\left[\left(\frac{1+\sqrt{5}}{2}\right)^{n}-\left(\frac{1-\sqrt{5}}{2}\right)^{n}\right] \end{aligned} \\即 {F_n =\frac{1}{\sqrt{5}}\left[\left(\frac{1+\sqrt{5}}{2}\right)^{n}-\left(\frac{1-\sqrt{5}}{2}\right)^{n}\right]} \\方法二:特征根法F_n=F_{n-1}+F_{n-2} x^2=x+1 x_1=\cfrac{1+\sqrt5}{2},\;x_2=\cfrac{1-\sqrt5}{2} F_n=(\cfrac{1+\sqrt5}{2})^nC_1+(\cfrac{1-\sqrt5}{2})^nC_2 \therefore C_1=C_2=\cfrac{1}{\sqrt5} {F_n =\frac{1}{\sqrt{5}}\left[\left(\frac{1+\sqrt{5}}{2}\right)^{n}-\left(\frac{1-\sqrt{5}}{2}\right)^{n}\right]} \\三、斐波那契数列与黄金分割斐波那契数列前一项与后一项之比的极限为黄金分割比。证明:由于{F_n =\cfrac{1}{\sqrt{5}}\left[\left(\cfrac{1+\sqrt{5}}{2}\right)^{n}-\left(\cfrac{1-\sqrt{5}}{2}\right)^{n}\right]} \\因此,斐波那契数列前一项与后一项之比为\begin{aligned} &\frac{F_{n}}{F_{n+1}}=\frac{\left(\frac{1+\sqrt{5}}{2}\right)^{n}-\left(\frac{1-\sqrt{5}}{2}\right)^{n}}{\left(\frac{1+\sqrt{5}}{2}\right)^{n+1}-\left(\frac{1-\sqrt{5}}{2}\right)^{n+1}}=\frac{\frac{2}{1+\sqrt{5}}\left(\frac{1+\sqrt{5}}{2}\right)^{n+1}-\frac{2}{1-\sqrt{5}}\left(\frac{1-\sqrt{5}}{2}\right)^{n+1}}{\left(\frac{1+\sqrt{5}}{2}\right)^{n+1}-\left(\frac{1-\sqrt{5}}{2}\right)^{n+1}}\\ &=\frac{\frac{\sqrt{5}-1}{2}\left(\frac{1+\sqrt{5}}{2}\right)^{n+1}-\left(-\frac{1+\sqrt{5}}{2}\right)\left(\frac{1-\sqrt{5}}{2}\right)^{n+1}}{\left(\frac{1+\sqrt{5}}{2}\right)^{n+1}-\left(\frac{1-\sqrt{5}}{2}\right)^{n+1}}\\ &=\frac{\frac{\sqrt{5}-1}{2}\left(\frac{1+\sqrt{5}}{2}\right)^{n+1}-\left(\frac{\sqrt{5}-1}{2}-\sqrt{5}\right)\left(\frac{1-\sqrt{5}}{2}\right)^{n+1}}{\left(\frac{1+\sqrt{5}}{2}\right)^{n+1}-\left(\frac{1-\sqrt{5}}{2}\right)^{n+1}}\\ &=\frac{\frac{\sqrt{5}-1}{2}\left(\frac{1+\sqrt{5}}{2}\right)^{n+1}-\frac{\sqrt{5}-1}{2}\left(\frac{1-\sqrt{5}}{2}\right)^{n+1}}{\left(\frac{1+\sqrt{5}}{2}\right)^{n+1}-\left(\frac{1-\sqrt{5}}{2}\right)^{n+1}}+\frac{\sqrt{5}\left(\frac{1-\sqrt{5}}{2}\right)^{n+1}}{\left(\frac{1+\sqrt{5}}{2}\right)^{n+1}-\left(\frac{1-\sqrt{5}}{2}\right)^{n+1}}\\ &=\frac{\sqrt{5}-1}{2}+\frac{\sqrt{5}}{\left(-\frac{3+\sqrt{5}}{2}\right)^{n+1}-1} \end{aligned} \\即{\cfrac{F_{n}}{F_{n+1}}=\cfrac{\sqrt{5}-1}{2}+\cfrac{\sqrt{5}}{\left(-\cfrac{3+\sqrt{5}}{2}\right)^{n+1}-1}} \\当 n \rightarrow+\infty 时,\cfrac{F_{n}}{F_{n+1}}=\cfrac{\sqrt{5}-1}{2} \\四、几个重要的结论1、前 n 项和公式: F_{1} +F_{2} +\cdots +F_{n} =F_{n+2} -1 \\ 证明:由于斐波那契数列的通项公式为: {F_n =\cfrac{1}{\sqrt{5}}\left[\left(\cfrac{1+\sqrt{5}}{2}\right)^{n}-\left(\cfrac{1-\sqrt{5}}{2}\right)^{n}\right]} \\其显然是两个等比数列的线性组合,因此我们可以利用等比数列的求和公式来计算斐波那契数列的前 n 项和。这里我们由定义和通项公式可以直接得到如下结论:\begin{align} &F_{1} +F_{2} +\cdots +F_{n} \\&=F_2+(F_{1} +F_{2} +\cdots +F_{n} )-F_2\\&=\cfrac{1}{\sqrt{5}}\left[\left(\cfrac{1+\sqrt{5}}{2}\right)^{n+2}-\left(\cfrac{1-\sqrt{5}}{2}\right)^{n+2}\right]-1 \end{align} 即 F_{1} +F_{2} +\cdots +F_{n} =F_{n+2} -1 成立。2、奇数项求和F_{1}+F_{3}+F_{5}+F_{7}+\cdots+F_{2 n-1}=F_{2 n} \\证明:\begin{aligned} F_{2 n} &=F_{2 n-1}+F_{2 n-2} \\ &=F_{2 n-1}+F_{2 n-3}+F_{2 n-4} \\ &=F_{2 n-1}+F_{2 n-3}+F_{2 n-5}+F_{2 n-6} \\ &=F_{2 n-1}+F_{2 n-3}+F_{2 n-5}+\ldots+F_{4} \\ &=F_{2 n-1}+F_{2 n-3}+F_{2 n-5}+\ldots+F_{3}+F_{2} \\ &=F_{2 n-1}+F_{2 n-3}+F_{2 n-5}+\ldots+F_{3}+F_{1} \end{aligned} \\3、 偶数项求和F_{2}+F_{4}+F_{6}+F_{8}+\cdots+F_{2 n}=F_{2 n+1}-1 \\证明:\begin{aligned} F_{2 n+1} &=F_{2 n}+F_{2 n-1} \\ &=F_{2 n}+F_{2 n-2}+F_{2 n-3} \\ &=F_{2 n}+F_{2 n-2}+F_{2 n-4}+F_{2 n-5} \\ &=F_{2 n}+F_{2 n-2}+F_{2 n-4}+\ldots+F_{4}+F_{3} \\ &=F_{2 n}+F_{2 n-2}+F_{2 n-4}+\ldots+F_{4}+F_{2}+F_{1} \end{aligned} \\移项便得到证明。4、 平方求和F_{1}^{2}+F_{2}^{2}+F_{3}^{2}+F_{4}^{2}+\cdots+F_{n}^{2}=F_{n} \cdot F_{n+1} \\证明:\begin{aligned} F_{n} \cdot F_{n+1} &=F_{n}\left(F_{n}+F_{n-1}\right)=F_{n}^{2}+F_{n-1} F_{n} \\ &=F_{n}^{2}+F_{n-1}\left(F_{n-1}+F_{n-2}\right)=F_{n}^{2}+F_{n-1}^{2}+F_{n-2} F_{n-1} \\ &=F_{n}^{2}+F_{n-1}^{2}+\ldots+F_{2}^{2}+F_{1} F_{2} \\ &=F_{n}^{2}+F_{n-1}^{2}+\ldots+F_{2}^{2}+F_{1}^{2} \end{aligned} \\五、一些重要恒等式 (1) 当 n \geq 0,n\in \mathbb{Z^{+}}时F_{1} +F_{2} +\cdots +F_{n} =F_{n+2} -1 \\ (2) 当 n \geq 0,n\in \mathbb{Z^{+}}时F_{2} + F_{4} +\cdots +F_{2n} = F_{2n+1} \\ (3) 当m, n \geq 0,则F_{m+n}=F_{m} F_{n}+F_{m-1} F_{n-1} \\ (4) 当n \geq 0,则\left(\begin{array}{c} n \\ 0 \end{array}\right)+\left(\begin{array}{c} n-1 \\ 1 \end{array}\right)+\left(\begin{array}{c} n-2 \\ 2 \end{array}\right)+\cdots=F_{n}\\ (5) 当n \geq 0,则\sum_{i \geq 0} \sum_{j \geq 0}\left(\begin{array}{c} n-i \\ j \end{array}\right)\left(\begin{array}{c} n-j \\ i \end{array}\right)=F_{2 n+1}\\ (6) 当n \geq 0,则F_{2 n-1}=\sum_{k=1}^{n}\left(\begin{array}{l} n \\ k \end{array}\right) F_{k-1}\\ (7) 当n \geq 4,则F_{n}^{3}+3 F_{n-3}^{3}+F_{n-4}^{3}=3 F_{n-1}^{2}+6 F_{n-2}^{3}\\ (8) 当n \geq 1,则F_{n}^{2}=F_{n+1} F_{n-1}+(-1)^{n} \\ (9) 当n \geq 0,则\sum_{k=0}^{n} F_{k}^{2}=F_{n} F_{n+1} \\ (10) 当n \geq 0,则F_{n}+F_{n-1}+\sum_{k=0}^{n-2}F_{k} 2^{n-2-k}=2^{n} \\ (11) 当m, p, t \geq 0,则F_{m+(t+1) p}=\sum_{i=0}^{p}\left(\begin{array}{l} p \\ i \end{array}\right) F_{t}^{i} F_{t-1}^{p-i} F_{m+i}\\ (12) 当n \geq 1, 则F_{1}+F_{3}+\cdots+F_{2 n-1}=F_{2 n}-1 \\ (13) 当n \geq 0, 则F_{n}^{2}+F_{n+1}^{2}=F_{2 n+2} \\ (14) 当n \geq 1, 则F_{n}^{2}-F_{n-2}^{2}=F_{2 n-1} \\ (15) 当n \geq 0, 则F_{2 n+2}=F_{n+1} F_{n+2}-F_{n-1} F_{n} \\ (16) 当n \geq 2, 则2 F_{n}=F_{n+1}+F_{n-2} \\ (17) 当n \geq 2, 则3 F_{n}=F_{n+2}+F_{n-2} \\ (18) 当n \geq 2, 则4 F_{n}=F_{n+2}+F_{n}+F_{n-2} \\ (19) 当n \geq 1, 则\left(F_{n-1} F_{n+2}\right)^{2}+\left(2 F_{n} F_{n+1}\right)^{2}=\left(F_{n+1} F_{n+2}-F_{n-1} F_{n}\right)^{2}=\left(F_{2 n+2}\right)^{2} \\ (20) 当 n \geq p,则F_{n+p}=\sum_{i=0}^{p}\left(\begin{array}{l}p \\ i\end{array}\right) F_{n-i} \\ (21) 当n \geq 0,则\sum_{k=0}^{n}(-1)^{k} F_{k}=1+(-1)^{n} F_{n-1} \\ (22) 当n \geq 0, 则\prod_{k=1}^{n}\left(1+\frac{(-1)^{k+1}}{F_{k}^{2}}\right)=\frac{F_{n+1}}{F_{n}} \\ (23) 当n \geq 0, 则F_{0}+F_{3}+F_{6}+\cdots+F_{3 n}=\frac{1}{2} F_{3 n+2} \\ (24) 当n \geq 1, 则F_{1}+F_{4}+F_{7}+\cdots+F_{3 n-1}=\frac{1}{2}\left(F_{3 n+1}-1\right) \\ (25) 当n \geq 1, 则F_{2}+F_{5}+F_{8}+\cdots+F_{3 n-2}=\frac{1}{2}\left(F_{3 n}-1\right) \\ (26) 当n \geq 0, 则F_{0}+F_{4}+F_{8}+\cdots+F_{4 n}=F_{2 n} F_{2 n+1} \\ (27) 当n \geq 1, 则F_{1}+F_{5}+F_{9}+\cdots+F_{4 n-3}=F_{2 n-1}^{2} \\ (28) 当n \geq 1, 则F_{2}+F_{6}+F_{10}+\cdots+F_{4 n-2}=F_{2 n-1} F_{2 n} \\ (29) 当n \geq 1, 则F_{3}+F_{7}+F_{11}+\cdots+F_{4 n-1}=F_{2 n-1} F_{2 n+1} \\ (30) 当n \geq 1, 则F_{n+3}^{2}+F_{n}^{2}=2 F_{n+1}^{2}+2 F_{n+2}^{2} \\ (31) 当n \geq 1, 则F_{n}^{4}=F_{n+2} F_{n+1} F_{n-1} F_{n-2}+1 \\(32) 当n \geq 0, 则 F_{1}+2 F_{2}+\cdots+n F_{n}=(n+1) F_{n+2}-F_{n+4}+3 \\(本内容收集整理于网络,放在这里备忘,如有错误请指正。)编辑于 2023-11-24 07:58・IP 属地甘肃斐波那契(Leonardo Fibonacci)数列斐波拉契数列​赞同 104​​6 条评论​分享​喜欢​收藏​申请

Fibonacci 数列及其计算方法-CSDN博客

>

Fibonacci 数列及其计算方法-CSDN博客

Fibonacci 数列及其计算方法

最新推荐文章于 2024-01-31 09:09:48 发布

liyuanbhu

最新推荐文章于 2024-01-31 09:09:48 发布

阅读量3.8w

收藏

42

点赞数

24

分类专栏:

数据结构与算法

科普

文章标签:

数学

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/liyuanbhu/article/details/51703018

版权

科普

同时被 2 个专栏收录

64 篇文章

12 订阅

订阅专栏

数据结构与算法

51 篇文章

8 订阅

订阅专栏

Fibonacci 数列及其计算方法

斐波那契数列(Fibonacci sequence),又称黄金分割数列,这个数列最早是由印度数学家提出来的。不过更多的人学习到这个数列是因为意大利数学家列昂纳多·斐波那契(Leonardoda Fibonacci)和他的《Liber Abaci》一书。在这本书中,列昂纳多·斐波那契以兔子繁殖为例子引出了这个序列,因此这个序列又称为“兔子数列”。 这个序列的前几项是这样的:

0,1,1,2,3,5,8,13,21,34,⋯

在数学上,斐波纳契数列以如下被以递归的方法定义:

F(0)=0F(1)=1F(n)=F(n−1)+F(n−2) ,(n≥2,n∈N)

Fibonacci 数列的通项公式

Fibonacci 数列除了递归形式之外,当然还可以写出通项公式。下面就来算算

F(n)

F(n)=F(n−1)+F(n−2)

是典型的线性差分方程,可以用经典的待定系数法来解,当然也可以用

Z

变换解。考虑到不是每个人都学过 Z 变换,这里就给个最基本的待定系数法。假设

F(n)=C×Wn

C

和 W 是两个待定系数,那么有:

Wn=Wn−1+Wn−2

化简一下,得到:

W2=W+1

很显然,

W

有两个解:

W1=1−5√2≈−0.618,W2=1+5√2≈1.618

那么

F(n)=C1Wn1+C2Wn2

也满足

F(n)=F(n−1)+F(n−2)

C1,C2

可以通过起始条件来确定。

F(0)=0=C1+C2F(1)=1=C1W1+C2W2

这是一个简单的二元一次方程,计算后可以得到:

C1=−5√5,C2=5√5

所以:

F(n)=−5√51−5√2n+5√51+5√2n

n

较大时,C1Wn1=−0.4472×(−0.618)n≈0 所以

n

较大时,

F(n)≈5√51+5√2n≈0.4472×1.618n

有些没有学过差分方程理论的同学可能会问为什么假设

F(n)=C×Wn

。简单的说,这是猜的。当然也不是无缘无故的猜测。我们知道

F(n)

的差分方程是这样的:

F(n)=F(n−1)+F(n−2)

我们再构造两个辅助的差分方程:

F1(n)=2F1(n−1)F2(n)=2F2(n−2)

那么当起始条件相同时,明显有

F2(n)

F1(n),F2(n)

都是等比数列,通项公式如下:

F1(n)=2nC1F2(n)=2√nC2

所以

2√nC2

。 所以我们猜测

F(n)=Wn

,其中

2√

程序实现

斐波纳契数列的定义是递归形式的。自然,用递归函数最容易实现。

uint64_t Fibonacci(unsigned char n)

{

if( n == 0 ) return 0;

if( n == 1 ) return 1;

return Fibonacci(n - 1) + Fibonacci(n - 2);

}

这个代码虽然简单,但是计算复杂度却太高。当

n

稍微大一点时,计算时间就会非常长。

我们可以简单的算一下,当计算 F(n) 时,

F(n)

内部会调用

2+F(n−1)+F(n−2)

次自己。

我们用

B(n)

表示

F(n)

中多少次调用自己。那么就有递归表达式:

B(0)=0B(1)=0B(n)=2+B(n−1)+B(n−2)

那么这个

B(n)

具体是多少呢? 显而易见,当

n≥2

时,

B(n)≥F(n)

我们又知道

F(n)

,所以递归算法的时间复杂度是

O(1.618n)

1.618100=7.90409×1020

。也就是说当

n=100

时,递归函数要反复调用自己

1020

次左右,这个计算时间是不能忍受的。

如果将递归算法改为递推,时间复杂度会降低很多。

uint64_t Fibonacci(unsigned char n)

{

if( n == 0 ) return 0;

if( n == 1 ) return 1;

uint64_t fn, fnn = 1, fnnn = 0;

for(int i = 2; i <= n; i ++)

{

fn = fnn + fnnn;

fnn = fn;

fnnn = fnn;

}

return fn;

}

这个程序很简答,for 循环中计算了

n−2

次, 所以时间复杂度为

O(n)

那么原来的递归算法就没有改进的余地了吗?递归算法之所以算的慢,是因为计算

F(n)

时,对于小于

n

的数 m,重复计算了很多次

F(m)

。下面这幅图给出了计算

F(6)

时的递归调用关系。

可以看到

F(4),F(3)

都重复计算了好几遍。其实,只要将计算过的

F(m)

保存下来,下次用时直接读取就好了,这样就省去了反复计算

F(m)

的问题。下面是改进后的代码,时间复杂度降低为

O(n)

uint64_t Fibonacci(unsigned char n)

{

static uint64_t fib[256] = {0, 1};

if(n == 0) return 0;

if( fib[n] != 0 ) return fib[n];

fib[n] = Fibonacci(n - 1) + Fibonacci(n - 2);

return fib[n];

}

这个代码还用到了 static 型局部数据变量的一个特性:没有指定值的元素自动初始化为 0。如果没有这个特性,我们的程序中就要写上 255 个 0 了。

除了上面给出的两种

O(n)

算法之外,还有没有更快的计算

F(n)

的方法呢? 答案是肯定的。 我们将递推表达式变变型就能得到:

(F(1)F(2))=(0111)(F(0)F(1))

(F(2)F(3))=(0111)(F(1)F(2))=(0111)2(F(0)F(1))

(F(n−1)F(n))=(0111)n−1(F(0)F(1))

因此,计算

F(n)

就变成了计算一个矩阵的

n−1

次方的问题了。而这个问题是有快速算法的。 当

n

为偶数时,Mn=Mn/2×Mn/2 所以只要计算出了

Mn/2

了之后再自乘一下就行了。 当

n

为 奇数时,Mn=M(n−1)/2×M(n−1)/2+M 所以只要计算出了

M(n−1)/2

了之后自乘一下在加一下自己就可以了。

也就是说当

n=2m

时,只需要进行

m

次乘法计算就可以了。当 n<2m 时,最多也就是进行

m

次乘法计算 和 m 次加法计算。所以算法复杂度是

O(log(n))

。当

n

较大时,log(n)≪n,所以当

n

较大时这样计算会快的多。这里就不写出这种算法的具体实现了,感兴趣的同学可以自己写写。

这里还有一个问题一直没有解决,就是我们的程序可以正确计算到 n 为多少。 我们知道一个

m

位的无符号整数可以表示的最大的整数是 2m−1。当

F(n)>2m−1

自然计算结果就是错误的了。 估计这个最大的

n

还要用到我们上面给出的通项公式的近似结果:

F(n)≈5√51+5√2n≈0.4472×1.618n 简单的计算可知:

0.4472≈2−1.1611.618≈20.6942

所以:

F(n)≈0.4472×1.618n≈20.6942n−1.161F(47)≈231.4664F(48)≈232.1606F(93)≈263.3996F(94)≈264.0938

所以 32 位无符号整数最大可以表示到

F(47)

,64 位无符号整数最大可以表示到

F(93)

优惠劵

liyuanbhu

关注

关注

24

点赞

42

收藏

觉得还不错?

一键收藏

知道了

2

评论

Fibonacci 数列及其计算方法

Fibonacci 数列及其计算方法斐波那契数列(Fibonacci sequence),又称黄金分割数列,这个数列最早是由印度数学家提出来的。不过更多的人学习到这个数列是因为意大利数学家列昂纳多·斐波那契(Leonardoda Fibonacci)和他的《Liber Abaci》一书。在这本书中,列昂纳多·斐波那契以兔子繁殖为例子引出了这个序列,因此这个序列又称为“兔子数列”。 这个序列的前几项

复制链接

扫一扫

专栏目录

C++课程题目及其答案

12-19

C++课程题目及其答案

一、 课程设计题目:

1简单事务处理:设计模拟一个书店的销售账目。程序能够添加、修改书目,根据进货和销售数目更新库存数。(或类似的学生学籍管理、仓库物品管理、设备管理等,人选一个)

2 排序算法:设计四种及以上的排序算法,如冒泡排序、选择排序、插入排序、折半排序、快速排序、希尔排序等。

二、 设计内容及要求:

每位同学任选一个题目,单独完成。

对所选的题目,要有功能分析,编写程序,编译调试,生成可执行文件。第一大题一定要采用文件或链表方式设计,对管理的物品采用结构或链表或类来设计;功能模块应分为总控(用户界面)、增加、减少、修改等。

课程设计报告要有需求分析,总体分析,模块的划分,对各功能模块有详细说明,输入/ 输出说明,附程序源代码,对程序中的算法、设计的精巧之处有所论述。

一、面向过程设计题1----用迭代法求a的立方根

二、面向过程设计题2------求出n与其反序数之和并输出

三、面向过程设计题3-----用最少张数凑钱

四、面向过程设计题4-----计算一年某天星期几

五、面向过程设计题5----将输入的10进制正整数转换为罗马数据

六、面向过程设计题6----Fibonacci数列

七、面向对象设计题7---------复数的加法以及对复数的输出

八、面向对象设计题8---------实现DateType类

九、面向对象设计题9---------按照三种不同的方法求求出Fibonacci数列的第n项

十、面向对象设计题10---------重载二目运算符“+”和“^”

十二、面向对象设计题12---------设计一个类CStudent

12.1 需求分析…………………………………………………………………………2

12.2 概要设计………………………………………………………………………...2

12.3 详细设计与编码………………………………………………………………...2

12.4 调试分析………………………………………………………………………...2

12.5 用户使用说明 ………………………………………………………………….2

12.6 设计心得………………………………………………………………………...2

十六、数据结构设计题16-------统计选票

16.1 需求分析……………………………………………………………………….…..2

16.2 概要设计……………………………………………………………………….......2

16.3 详细设计与编码……………………………………………………………….....2

16.4 调试分析……………………………………………………………………….......2

16.5 用户使用说明 ……………………………………………………………………2

16.6 设计心得……………………………………………………………………….......2

十七、数据结构设计题17-------扑克牌

17.1 需求分析……………………………………………………………………….…..2

17.2 概要设计……………………………………………………………………….......2

17.3 详细设计与编码……………………………………………………………….....2

17.4 调试分析……………………………………………………………………….......2

17.5 用户使用说明 ……………………………………………………………………2

17.6 设计心得……………………………………………………………………….......2

一、面向过程设计题1----用迭代法求a的立方根

在C++中实现fibonacci数列的几种方法

关关的学习记录

10-07

5755

文章目录

前言

一、fibonacci数列是什么?

二、递归实现

1.递归的特点

2.C++实现

3.时间复杂度

三、循环实现

1.C++实现

2.时间复杂度

四、矩阵实现

1.理论推导

2.C++实现

3.时间复杂度

前言

fibonacci数列的实现主要有三种方法:递归、循环与矩阵。这里主要学习了如何在C++中实现这三种方法以及分析它们各自的时间复杂度。

本文参考文章如下:

https://blog.csdn.net/Bob__yuan/article/de.

2 条评论

您还未登录,请先

登录

后发表或查看评论

C#,斐波那契数列(Fibonacci Sequence)的八种算法与源代码

最新发布

深度混淆

01-31

3545

一、莱昂纳多·斐波那契(Leonardo Fibonacci)

斐波那契公元1170年生于意大利比萨,卒于1250年,被人称作“比萨的莱昂纳多”。1202年,他撰写了《算盘全书》(Liber Abacci)一书。他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点于阿尔及利亚地区,莱昂纳多因此得以在一个阿拉伯老师的指导下研究数学。他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯等地研究数学。

二、斐波那契数列(Fibonacci Sequence)

斐波那契数

计算机要学哪些东西----(还有附赠哦)

11-21

CS(计算机科学)知识体系

计算教程2010报告的这篇附录定义了计算机科学本科教学计划中可能讲授的知识领域。该分类方案的依据及其历史、结构和应用的其它细节包含在完整的任务组报告中。由于我们希望附录比完整的报告有更多的读者,所以任务组认为在每一篇附录中概述理解该推荐所必须的基本概念是重要的。在下面几节中我们列出了最重要的几个概念。

知识体的结构

计算机科学知识体分层组织成三个层次。最高一层是领域(area),代表一个特定的学科子领域。每个领域由一个两个字母的缩写词表示,比如OS代表操作系统,PL代表程序设计语言,领域之下又被分割成更小的单元(units),代表领域中单独的主题模块。每个单元都用一个领域名加一个数字后缀表示,比如OS3是关于并发的单元。各个单元由被细分成主题(topics),这是CS知识体层次结构的最底层。

离散结构(DS)

DS1. 函数,关系,集合[核心]

DS2. 基本逻辑[核心]

DS3. 证明技术[核心]

DS4. 计算基础[核心]

DS5. 图和树[核心]

DS6. 离散概率[核心]

DS1.函数、关系、集合论[核心]

主题:

函数(满射、入射、逆、复合)

关系(自反、对称、传递、等价关系)

集合(文氏图、补集、笛卡尔积、幂集)

鸽洞原理

基数和可数性

学习目标:

1. 举例说明基本术语:函数、关系和集合。

2. 执行与函数、关系和集合相关的运算。

3. 把实例与适当的集合、函数或关系模型相联系,并在上下文中解释相关的操作和术语。

4. 解释基本的计算原理,包括对角化和鸽洞原理的应用。

DS2. 基本逻辑 (核心)

主题:

命题逻辑

逻辑联结词

真值表

范式(合取与析取范式)

永真性

谓词逻辑

全称量词和存在量词

假言推理和否定后件推理(modus tallens)

谓词逻辑的局限性

学习目标:

1. 应用符号命题逻辑和谓词逻辑的形式化方法。

2. 描述如何使用符号逻辑的形式化工具为算法和真实情形建模。

3. 使用形式逻辑证明和逻辑推理来解决诸如迷宫等问题。

4. 描述谓词逻辑的重要性和局限性。

DS3. 证明技术 (核心)

主题:

蕴含、逆、补、逆否、否定、矛盾

形式证明的结构

直接证法

反例证法

通过逆否命题证明

归谬证法

数学归纳

完全归纳

递归数学定义

良序

学习目标:

1. 概述本单元中给出的每一种证明技术的基本结构并给出相应的实例。

2. 讨论对于指定的问题哪种类型的证明是最优的。

3. 把数学归纳思想与递归和递归定义的结构联系起来。

4. 说明数学归纳和完全归纳的差别并举例说明如何合理地使用它们。

DS4.计算基础 (核心)

主题:

计数理论(counting arguments)

——和积规则(sum and production rules)

——包含排斥原理

——算术和几何级数

——斐波纳契(Fibonacci)数列

鸽洞原理

排列和组合

——基本定义

——Pascal 恒等式

——二项式定理

求解递推关系式

——常见实例

——Master定理

学习目标:

1. 计算一个集合的排列和组合,并解释在特定应用环境中的意义。

2. 阐述Master定理的定义。

3. 计算各种不同的递推式。

4. 分析问题,产生相应的递推式或识别重要的计算问题

DS5. 图和树 (核心)

主题:

无向图

有向图

生成树

遍历策略

学习目标:

1. 通过例子说明图论的基本术语,各自的性质和特殊情况。

2. 说明树和图的不同遍历方法。

3. 使用图和树为计算机科学中的问题建模。

4. 把图和树与数据结构、算法和计算相联系。

DS6.离散概率[核心]

主题:

有限概率空间、概率的度量、事件

条件概率、独立性、贝叶斯定律

整型随机变量、期望

学习目标:

1. 对基本问题,如机会游戏(games of chance)计算事件概率和随机变量的期望。

2. 区别独立事件和非独立事件。

3. 对非独立事件应用二项式定理,对独立事件应用Bayes定理。

4. 应用概率工具如Monte Carlo方法、算法的平均情况分析和散列法来解决问题。

程序设计基础(PF)

PF1.基本程序设计结构[核心]

PF2.算法和问题求解[核心]

PF3. 基本的数据结构[核心]

PF4. 递归[核心]

PF5. 事件驱动的程序设计[核心]

PF1.基本程序设计结构[核心]

主题:

高级语言的基本语法和语义

变量、类型、表达式和赋值

简单I/O

条件和循环控制结构

函数和参数传递

结构化分解

学习目标:

1. 分析并解释具有本单元所涉及基本程序结构的简单程序的行为。

2.修改和扩展使用了标准条件和循环控制结构和函数的小程序。

3. 设计、实现、测试和调试一个使用下面每一种基本程序设计结构的程序:基本计算、简单的输入/输出、标准的条件和循环结构以及函数定义。

4.对于指定的程序设计任务,选择适当的条件和循环结构。

5.运用结构化(功能)分解技术把一个程序分解成一些小的程序块。

6.描述参数传递的机制。

PF2.算法和问题求解[核心]

主题:

问题求解策略

算法在问题求解过程中的作用

算法的实现策略

调试策略

算法的概念和性质

学习目标:

1. 讨论算法在问题求解过程中的重要性。

2. 指出好的算法所必备的性质。

3. 开发求解简单问题的算法。

4. 使用伪代码或程序设计语言实现、测试和调试求解简单问题的算法。

5. 描述调试中的实用策略。

PF3.基本的数据结构[核心]

主题:

原语类型

数组

记录

字符串和字符串处理

数据在内存中的表示

静态、栈和堆分配

运行时间存储管理

指针和引用

链接结构

栈、队列和哈希表的实现策略

图和树的实现策略

选择正确数据结构的策略

学习目标:

1. 讨论简单(primitive)数据类型和内置数据结构的表示和使用。

2. 描述主题列表中的数据结构在内存中是如何分配和使用的。

3. 描述主题列表中各数据结构常见的应用。

4. 用高级语言实现用户自定义的数据结构。

5. 比较数据结构的不同实现的性能。

6. 编写使用以下各种数据结构的程序:数组、记录、字符串、链表、栈、队列和哈希表。

7. 比较并说明动态和静态数据结构实现的代价和收益的不同。

8. 为指定问题的建模选择适当的数据结构。

斐波那契数列(Fibonacci)及其拓展

银之夏雪的博客

08-24

2683

斐波那契数列的封闭公式

斐波那契数列怎么求前几位

斐波那契数列怎么求后几位

斐波那契数列和非斐波那契数列怎么用矩阵连乘

大数加法的两种方法包括高精度和java大数加法

快速幂的讲解

hit2255

hdu1250

这些都在这个博客中,想看的可以来看一看哦

求斐波那契数列的三种方法

小猛同学的博客

07-05

11万+

什么是斐波那契数列,1,1,2,3,5,8,13...这样一个数列就是斐波那契数列,求第n项的值。

一、经典求法

观察数列可得,除了第一项和第二项,所有的数列的值都是前一项和前一项的前一项的加和,转换成函数也就是f(n) = f(n-1) + f(n-2)

public static int f1(int n) {

if(n < 1) {

return 0;

...

用C 语言实现斐波那契数列

m0_72000264的博客

11-03

6万+

用递归,非递归,和数组,实现斐波那契数列。

斐波那契数列

IronWring_Fly的博客

08-24

5万+

  斐波那契数列来源于兔子繁殖问题,所以也叫兔子序列。

  最开始我一直不能理解兔子问题怎么和斐波那契数列联系在一起的,然后画了这个图之后,就明白了。

  第一年有一对小兔子,一年后成年。成年的兔子又可以生出一对小兔子,如此循环往复,每年的兔子数就构成了一个斐波那契数列。

  斐波那契数列有很多马甲:

爬楼梯问题,一次可以爬一级,也可以爬两级;

用1个2 * 1个小矩形覆盖8个2*1的...

编程题: Fibonacci数列

灰太狼

06-25

2383

题目描述Fibonacci数列是这样定义的:F[0] = 0F[1] = 1for each i ≥ 2: F[i] = F[i-1] + F[i-2]因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1...

【C语言】斐波那契数列【递归与迭代】

moteandsunlight的博客

05-02

2万+

一、背景介绍

二、思路分析

三、代码实现

四、拓展阅读

五、非递归法代码实现

Fibonacci数列 C语言

一位打工仔的博客

08-19

1万+

Fibonacci数列定义如下:

第1,第2个数均为1,从第3个数开始,该数是其前面两个数之和。

Fibonacci数列为:1,1,2,3,5,8,13,…。

编写递归函数,求Fibonacci数列的第n个数,并编写主函数,调用该递归函数,输出数列前20个数的值。

int fibonacci(int sum);

int main(void){

int i;

for(i = 1; i <= 20; i++) {

printf("%d ...

关于Fibonacci数列的基及其均值的计算 (2005年)

05-28

介绍了一个与Fibonacci数有关的计数函数,利用了猜想和归纳的方法,得出了一类精确的均值计算公式Ar(N)=∑ n

广义Fibonacci-Lucas数中的素数IA题 (2005年)

05-25

对于广义Fibonacci-Lucas数对应的特征方程X2-PX+Q=0及其判别式D=P2-4Q,只需计算和的值即可判断相应的广义Fibonacci-Lucas数是否能被2p土1整除.利用这一结果,重新证明了Drobot用初等的方法只对Fibonacci数得到的结论,...

30个初级常用python实现脚本 中文pdf高清版

04-07

21、斐波那契数列 22、十进制转二进制、八进制、十六进制 23、最大公约数 23、最小公倍数 24、简单计算器 25、生成日历 26、文件IO 27、字符串判断 28、字符串大小写转换 29、计算每个月天 30、获取昨天的日期

MathJax 支持的 Latex 符号总结(各种箭头符号)

热门推荐

Ivan 的专栏

05-22

17万+

箭头符号

latex

显示效果 \uparrow

↑\uparrow

\downarrow

↓\downarrow

\Uparrow

⇑\Uparrow

\Downarrow

⇓\Downarrow

\updownarrow

↕\updownarrow

\Updownarrow

⇕\Updownarrow

\rightarrow

→\ri

远心镜头(Telecentric lens)原理介绍

Ivan 的专栏

12-31

5万+

远心镜头(Telecentric lens)原理介绍远心镜头(Telecentric lens),是为纠正传统镜头视差而设计,它可以在一定的物距范围内,使得到的图像放大倍率不会变化,简单的说这种镜头拍出来的图像没有近大远小关系。远心镜头又分为物方远心镜头、像方远心镜头和双侧远心镜头。下面是两个远心镜头的实物照片。

关于远心镜头的原理,网上有一些介绍,但是写的都很晦涩。其实几句话就能说清楚的,最核心

埃尔米特多项式 (Hermite Polynomials)简介(1)

Ivan 的专栏

03-17

3万+

最近在做一个数值逼近的算法,里面用到了埃尔米特多项式。所以就花了些时间推导了一遍,推导笔记放在这里算是给自己做个备忘。埃尔米特多项式 (Hermite Polynomial)简介(1)埃尔米特多项式是一组正交的多项式。就如许多其他的以人名命名的数学公式一样,埃尔米特多项式其实也并不是埃尔米特第一个提出的。 Laplace 在 1810 年一篇论文中就给出了埃尔米特多项式的系数,Chebyshev 则

MathJax 支持的 Latex 符号总结(微积分常用符号)

Ivan 的专栏

05-22

3万+

微积分常用符号

latex

显示效果 \partial

∂\partial

\nabla

∇\nabla

\infty

∞\infty

\int

∫\int

\iint

∬\iint

\iiint

∭\iiint

\iiiint

∬∬\iiiint

\oint

∮\oint

\triangle

△\triangle

如何优化斐波那契数列的计算性能?

01-04

斐波那契数列是一个经典的递归问题,但是递归实现的性能较差。为了优化斐波那契数列的计算性能,可以使用以下两种方法:

1. 使用迭代代替递归:递归实现斐波那契数列会导致重复计算,可以使用迭代的方式避免这种重复计算。通过使用循环来计算斐波那契数列,可以大大提高性能。下面是一个使用迭代的示例代码:

```python

def fibonacci(n):

if n <= 0:

return 0

if n == 1:

return 1

a, b = 0, 1

for _ in range(2, n+1):

a, b = b, a + b

return b

print(fibonacci(10)) # 输出:55

```

2. 使用记忆化技术:记忆化是一种将计算结果缓存起来以避免重复计算的技术。通过使用一个字典来保存已经计算过的斐波那契数列的值,可以避免重复计算,从而提高性能。下面是一个使用记忆化技术的示例代码:

```python

def fibonacci(n, memo={}):

if n <= 0:

return 0

if n == 1:

return 1

if n in memo:

return memo[n]

memo[n] = fibonacci(n-1, memo) + fibonacci(n-2, memo)

return memo[n]

print(fibonacci(10)) # 输出:55

```

这两种方法都可以有效地优化斐波那契数列的计算性能。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

liyuanbhu

CSDN认证博客专家

CSDN认证企业博客

码龄12年

暂无认证

486

原创

9087

周排名

249

总排名

611万+

访问

等级

4万+

积分

5386

粉丝

3367

获赞

1459

评论

1万+

收藏

私信

关注

热门文章

循环冗余校验(CRC)算法入门引导

299208

MathJax 支持的 Latex 符号总结(各种箭头符号)

178207

几个简单的数据点平滑处理算法

160262

matlab 读取处理 wav 文件

110453

Savitzky-Golay 滤波器

107461

分类专栏

CMake 学习笔记

10篇

Qt 编程技术

63篇

leetCode 试题分析与解答

33篇

陶哲轩实分析习题解答

24篇

数据结构与算法

51篇

编程杂项

95篇

数值计算+数学软件

88篇

嵌入式系统

39篇

科普

64篇

传感器与电路

35篇

实时操作系统

23篇

VIM 专栏

3篇

机械故障声学诊断

5篇

机器视觉+图像处理+数字信号处理

91篇

陶哲轩实分析习题解答

33篇

最新评论

循环冗余校验(CRC)算法入门引导

狂沙一笑天:

有点蒙。需要一定的基础。外行看热闹内行看门道。

球面拟合算法

点云学徒:

最后一次化简,这个v02+w02+v02-R2为什么是0呢,均值点在球面上?实在是搞不懂啊,谁能解答一下吗,是我理解错了还是这个推导错了?

OpenCV 学习笔记(模板匹配)

liyuanbhu:

是的 width和height

OpenCV 学习笔记(模板匹配)

猫咪爱穿蓝毛衣:

请问w和h是不是对应的图像大小的尺寸?虽然在各个教程中看到的只有一种表示

故障轴承声学信号的时域处理方法

小尛漓:

博主您好,请问轴承的故障音频是从哪里得到的?有开放的数据集吗?

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

C++ 学习笔记(Structured bindings)

CMake 学习笔记 (Generator Expressions)

CMake 学习笔记(target_compile_features())

2024年1篇

2023年11篇

2022年15篇

2021年19篇

2020年7篇

2019年19篇

2018年15篇

2017年53篇

2016年115篇

2015年53篇

2014年58篇

2013年53篇

2012年98篇

目录

目录

分类专栏

CMake 学习笔记

10篇

Qt 编程技术

63篇

leetCode 试题分析与解答

33篇

陶哲轩实分析习题解答

24篇

数据结构与算法

51篇

编程杂项

95篇

数值计算+数学软件

88篇

嵌入式系统

39篇

科普

64篇

传感器与电路

35篇

实时操作系统

23篇

VIM 专栏

3篇

机械故障声学诊断

5篇

机器视觉+图像处理+数字信号处理

91篇

陶哲轩实分析习题解答

33篇

目录

评论 2

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

黄金分割数列——斐波那契数列 - 知乎

黄金分割数列——斐波那契数列 - 知乎切换模式写文章登录/注册黄金分割数列——斐波那契数列轩尼诗生命不在于你得到过什么,而在于你做过什么。概念斐波那契数列(Fibonacci数列)是数学家斐波那契以研究兔子繁殖为例研究的数列,故称“兔子数列”,又称为黄金分割数列。它的一提出就受到了社会的广泛关注,经过研究之后人们发现了这个神奇的数列有着不可估量的重要作用。这个数列在物理、化学等领域都有广泛的应用。[1]产生意大利数学家斐波那契,出生在一个富商家庭,是12 世纪欧亚之间数学交流的重要使者。他在1202 年的著作《计算之书》中,提出了“生小兔问题”,引发出了一个充满奇趣的数列,它不仅与几何图形、黄金分割、杨辉三角等数学知识、植物生长等自然现象有着非常微妙的联系,还在优选法、计算机科学等领域有着广泛的应用,这就是斐波那契数列。性质由通项A(n+1)=A(n)+A(n-1) 可证得a.f(0)-f ⑴ +f ⑵ -…+(-1)^n·f(n)=(-1)^n·[f(n+1)-f(n)]-1。b.f(n+m)=f(n+1)·f(m)+f(n)·f(m-1)。c.f ⑴ +f ⑶ +f ⑸ +…+f(2n-1)=f(2n)。d.f(0)+f ⑴ +f ⑵ +…+f(n)=f(n+2)-1。e.f ⑵ +f ⑷ +f ⑹ +…+f(2n)=f(2n+1)-1。f.[f(0)]^2+[f ⑴ ]^2+…+[f(n)]^2=f(n)·f(n+1)。假设条件根据这一数列,结合实际情况先假设几个条件:第一个月初有一对刚诞生的兔子;第二个月之后(第三个月初)它们可以生育;从第三个月开始每个月每对可以生育的兔子就会诞下一对新兔子;兔子没有死去。我们按照以上假设用图形的方式来展示前几个月兔子的繁殖的数目,详见图1。以上展示的数列形式就是Hbonacci数列,用数列的通项表示为:用表格列举法显示Hbonacci数列的前15项如表1所示。[2]解法/**

* 斐波那契数列问题

* 1.数组实现 1 1 2 3 5 8 13....

* a[0]=1,a[1]=1;

* a[x>=2]=a[x-1]+a[x-2];

*

* 2.变量变化实现 a b

* 1 1

* 1 2

* 2 3

* 3 5

* 5 8

* a=1,b=1;

* tem=a;

* a=b;

* b=b+tem;

* 3.递归实现

*/

public static int fib(int n) {

if (n == 0)

return 0;

if (n == 1 || n == 2) {

return n;

} else {

return fib(n - 1) + fib(n - 2);

}

}通项公式斐波那契数列的递推公式为:具有形如:递推公式的数列叫做线性递推数列。这种数列的通项公式只与数列的第一、第二项和方程 y2 = ay + b的两根有关。此方程包含了线性递推数列的重要信息,故称之为线性递推数列的特征方程。显然斐波那契数列是一个线性递推数列。其特征方程为:x2=x+1解得:解得:斐波那契数列的通项公式真的非常奇妙。我们知道斐波那契数列的每一项都是由正整数构成的,但是它的通项公式居然含有无理数。[3]新求法方法1(幂级数法)[4] 以斐波那契数列{Fn}作为幂级数的系数来构造函数f(x),即令利用(1)式,可得由(3)式解得:同时,利用间接法将f(x)展开成幂级数根据函数展开成幂级数的唯一性,比较(2),(4)式,即得斐波那契数列的通项公式为方法2(行列式法) 给定n 阶三对角行列式Dn,满足其中a,b 为实数.将行列式Dn按第1行展开,得Dn =(a+b)Dn-1-abDn-2,从而因为所以由(6)式可知从而在(5)式中令a+b=1,ab=-1,则有将Dn按第1行展开,得记D0=1,D1=1,显然有Fn =Dn方法3(差分方程法) 根据齐次差分方程解的理论可知,若二阶常系数差分方程:Fn -Fn-1-Fn-2=0。对应的特征方程有2个互异的特征根λ1,λ2,则该方程有通解其中C1,C2为任意常数,因此,对于满足初值条件F1=F2=1的差分方程(1),其特征方程有2个互异的实根,λ1=故其通解为由初始条件F1=F2=1,可得因此斐波那契数列的通项公式为方法4(公式法) 对于(1)式,假设存在常数α,β,使得则α,β 应满足α+β=1,αβ=-1,从而解得由公式可得[5]实际应用人们对斐波那契数列的研究已然不仅仅停留在数学这一单一领域。随着世界科技的发展,斐波那契数列在各个领域大放异彩,百年前的兔子数列如今正解决着世界上最尖端的问题。斐波那契数列在数学和生活以及自然界中都非常有用,这个数列小到小学的找规律问题,大到解决金融股市难题。[6]黄金螺旋黄金螺旋,是根据斐波那契数列画出来的螺旋曲线, 也叫斐波那契螺旋。由于斐波那契数列也就是黄金分割数表达的,随着n 的增大,前后两项之比越来越接近于黄金分割数,这样的图形是无处不在的。例如许多植物的花瓣数量,中心图案等。这样的结构也存在在人耳中,增强人们的听觉。而在生活中,众多logo,商标的设计都是以斐波拉契螺旋线为灵感而发掘的。例如风靡全球的苹果公司的logo,巴西Boticario 公司的logo 都是遵循黄金螺旋的结构的。而在《达芬奇密码》中黄金螺旋也作为了一个重要的线索出现。[7]准晶体结构在近代化学的不断进步中,一种介于晶体与非晶体之间的准晶体被人们发现。在这种通常也称为准晶的原子排列中,奇妙的结构出现了。长程有序的结构是与晶体相似的;不同的是准晶不具备平移对称性。准晶具有五次对称性或者更高的六次以上对称性的,它的布拉格衍射图具有其他的对称性。人们发现这种准晶体也同斐波那契序列有关。在准晶体结构中,两个原理,即二十面体原理和黄金中值定理在起作用。据这些原理,结点应按斐波那契排列分布:在准晶体行列中,与晶格中的只有一个平移周期不同,有两个距离a 和b,且a/b=(1+ √ 5)/2( 黄金分割比)QCLDPC 码QCLDPC 是一类半结构化的低密度奇偶校验码, 其分块的矩阵结构具有超大规模集成电路实现上的便利, 同时保持了优异的纠错性能。可基于斐波那契数列提出了一种准循环低密度奇偶校验码的新颖构造方法, 该构造方法能避免四环的产生, 具有较好的纠错性能, 可通过改变参数值进而改变码长和码率。对任意(m0,n0), 令m0斐波那契数列的通项公式 - 知乎

斐波那契数列的通项公式 - 知乎首发于自由思想的数学切换模式写文章登录/注册斐波那契数列的通项公式自在小东人写作爱好者、哲学爱好者、数学爱好者、编程爱好者、数术爱好者摘要:本文将以斐波那契数列为引子,导出一般的二阶常系数线性递归式的求解问题。所谓斐波那契数列指的是数列:1,1,2,3,5,8,13,21,……。即数列满足递推公式 F_{n+2} = F_{n+1} + F_{n},(F_1 = F_2 = 1),用语言描述就是后一项等于前两项和。很多高中生、非数学专业本科生都对此数列的通项公式的求法比较感兴趣,在本文中,我将给出其通项公式的解法,其中关系到二阶常系数线性递归式的求解问题,需要说明的是,本文的内容不作为严格的数学证明,只是给出这种求解的引导,希望能给读者一些启发。当我们并没有学习到更深一层次的数学理论时,比如线性代数,离散数学等,我们无法使用那些已经成熟的理论工具来求解斐波那契数列的通项公式,但是我们依然有一些办法可以得到,这种办法有时候可能只是在一些巧合或者偶然的情况下得到的,请看下面的解法思路。我们假设有一个等比数列\left\{ x^n \right\} ,公比是x,x不为0,首项为1,可以满足斐波那契数列的递推公式,于是就有:x^{n+2} = x^{n+1} + x^{n},将等比数列\left\{ x^n \right\} 代入递推式中得到,提取x^n,移项,即有:(x^2 - x - 1)x^n = 0,由于x^n \ne 0,可得:x^2 - x - 1= 0,解此一元二次方程,可得两个根为:x_1 = \frac{1+\sqrt{5} }{2},x_2 = \frac{1- \sqrt{5} }{2}。也就是说等比数列\left\{ x_1^n \right\} ,\left\{ x_2^n \right\} 是满足斐波那契数列递推公式的两个解,但是实际上这两个等比数列都不是斐波那契数列的通项公式,既然单独的解不是,那么它们的组合呢?容易验证它们的线性组合,即:c_1x_1^n+c_2x_2^n,c_1、c_2是两个待求解的常数,也是递推公式的解。为了确定这两个常数,我们需要数列的前两项作为初始因子,细想一下,一个数列怎么能没有首项呢?例如等差数列由首项和公差确定,等比数列由首项公比确定,公差和公比至少需要数列的前两项确定,将F_1和F_2代入线性组合的式子里,可得: \left\{\begin{aligned}

& c_1 \cdot (\frac{1+\sqrt{5} }{2}) + c_2\cdot \frac{1-\sqrt{5} }{2} = 1 & \\

& c_1 \cdot (\frac{1+\sqrt{5} }{2})^2 + c_2\cdot (\frac{1-\sqrt{5} }{2})^2 = 1 & \\

\end{aligned}\right.,解得:c_1 = \frac{1}{\sqrt{5}},c_2 = -\frac{1}{\sqrt{5}}。于是斐波那契数列的通项公式为:F_{n} = \frac{1}{\sqrt{5} }[(\frac{1+\sqrt{5} }{2})^n - (\frac{1-\sqrt{5} }{2})^n]。可以验证,上式就是斐波那契数列的通项公式。这种方法抽象出来就是特征方程法,特征方程的解法在常系数微分方程中同样适用,解法的理论依据,我们在此不做详细的论证,有兴趣的读者可以去查阅相关资料。我们先把上面的解法抽象出来。设二阶常系数齐次递归式为:aH_{n+2} + bH_{n+1} + cH_{n} = 0,其中a、b、c、为常数,有一元二次方程ax^2 + bx + c = 0与之对应,称其为递归式的特征方程,设其两个根为x_1、x_2。当x_1 \ne x_2,即特征方程有两个不等的实根时,递归式的通项公式为H_{n} = c_1x_1^n + c_2x_2^n,c_1、c_2是两个待求解的常数;当x_1 = x_2,即特征方程有两个相等的实根时,我们可以构造出一个线性无关解c_2n,则递归式的通项公式为:H_{n} = (c_1 + c_2n)x^n,c_1、c_2是两个待求解的常数;当特征方程没有实根时,则递归式不存在实数范围内的解,此时的数列变为复数范围内的数列,我们在此不做讨论。c_1、c_2两个常数可以用数列的前两项H_1、H_2来确定。特征方程的解法不限于二阶常系数齐次递归式,对更高阶的递归式也适用,二阶的意思是特征方程是二次,三阶即对应三次方程,更高阶则类推,等比数列属于一阶。常系数的意思是a、b、c是常数,而不是函数,齐次的意思是递归式的右边是0,而不是关于n的函数,若右边是关于n的函数,特征方程法也成立,只是需要外加一个关于此函数的特解。对于常系数线性递归式的解法就说到这里,下面我们来看看斐波那契数列的一些性质。极限性质:\lim_{n \rightarrow \infty }{\frac{F_{n}}{F_{n+1}}} = \frac{\sqrt{5} - 1}{2}\approx 0.618,即黄金分割比,因此斐波那契数列又称为黄金分割数列。前n项和:\sum_{i = 1}^{n}{F_i} = F_{n+2} - 1,由通项公式可以看出斐波那契数列就是两个等比数列的线性组合,因此分别按照等比数列求和公式就可以求前n项和。交错和性质:\sum_{i = 1}^{n} {(-1)^iF_i} = (-1)^nF_{n-2} - 1。集合性质:集合\left\{ 1, 2, 3, ... ,n-1 \right\} 的不含相邻两数的子集数为:F_n。行列式性质:F_1 = F_2 = |1|,F_3 = \begin{vmatrix}

1 & 1 \\

-1 & 1 \\

\end{vmatrix},F_4 = \begin{vmatrix}

1 & 1 & 0 \\

-1 & 1 & 1 \\

0 & -1 & 1\\

\end{vmatrix},……。计数性质:以1步或2步登上n-1阶台阶的登法数为F_n。组合数性质:\sum_{i = 0}^{n-1}{C_{n-i}^i} = F_n ,(i斐波那契数列 - OI Wiki数列 - OI Wiki 跳转至 OI Wiki 斐波那契数列 正在初始化搜索引擎 OI-wiki/OI-wiki 简介 比赛相关 工具软件 语言基础 算法基础 搜索 动态规划 字符串 数学 数据结构 图论 计算几何 杂项 专题 关于 Hulu OI Wiki OI-wiki/OI-wiki 简介 简介 Getting Started 关于本项目 如何参与 OI Wiki 不是什么 格式手册 数学符号表 F.A.Q. 用 Docker 部署 OI Wiki 镜像站列表 致谢 比赛相关 比赛相关 比赛相关简介 赛事 赛事 OI 赛事与赛制 ICPC/CCPC 赛事与赛制 题型 题型 题型概述 交互题 学习路线 学习资源 技巧 技巧 读入、输出优化 分段打表 常见错误 常见技巧 出题 工具软件 工具软件 工具软件简介 代码编辑工具 代码编辑工具 Vim Emacs VS Code Atom Eclipse Notepad++ Kate Dev-C++ CLion Geany Xcode GUIDE Sublime Text CP Editor 评测工具 评测工具 评测工具简介 Arbiter Cena CCR Plus Lemon 命令行 编译器 WSL (Windows 10) Special Judge Testlib Testlib Testlib 简介 通用 Generator Validator Interactor Checker Polygon OJ 工具 LaTeX 入门 Git 语言基础 语言基础 语言基础简介 C++ 基础 C++ 基础 Hello, World! C++ 语法基础 变量 运算 流程控制语句 流程控制语句 分支 循环 高级数据类型 高级数据类型 数组 结构体 联合体 指针 函数 文件操作 C++ 标准库 C++ 标准库 C++ 标准库简介 STL 容器 STL 容器 STL 容器简介 迭代器 序列式容器 关联式容器 无序关联式容器 容器适配器 STL 算法 bitset string pair C++ 进阶 C++ 进阶 类 命名空间 值类别 重载运算符 引用 常值 新版 C++ 特性 Lambda 表达式 pb_ds pb_ds pb_ds 简介 堆 平衡树 编译优化 C++ 与其他常用语言的区别 Pascal 转 C++ 急救 Python 速成 Java 速成 Java 进阶 算法基础 算法基础 算法基础简介 复杂度 枚举 模拟 递归 & 分治 贪心 排序 排序 排序简介 选择排序 冒泡排序 插入排序 计数排序 基数排序 快速排序 归并排序 堆排序 桶排序 希尔排序 锦标赛排序 tim排序 排序相关 STL 排序应用 前缀和 & 差分 二分 倍增 构造 搜索 搜索 搜索部分简介 DFS(搜索) BFS(搜索) 双向搜索 启发式搜索 A* 迭代加深搜索 IDA* 回溯法 Dancing Links Alpha-Beta 剪枝 优化 动态规划 动态规划 动态规划部分简介 动态规划基础 记忆化搜索 背包 DP 区间 DP DAG 上的 DP 树形 DP 状压 DP 数位 DP 插头 DP 计数 DP 动态 DP 概率 DP DP 优化 DP 优化 单调队列/单调栈优化 斜率优化 四边形不等式优化 状态设计优化 其它 DP 方法 字符串 字符串 字符串部分简介 字符串基础 标准库 字符串匹配 字符串哈希 字典树 (Trie) 前缀函数与 KMP 算法 Boyer–Moore 算法 Z 函数(扩展 KMP) 自动机 AC 自动机 后缀数组 (SA) 后缀数组 (SA) 后缀数组简介 最优原地后缀排序算法 后缀自动机 (SAM) 后缀平衡树 广义后缀自动机 后缀树 Manacher 回文树 序列自动机 最小表示法 Lyndon 分解 Main–Lorentz 算法 数学 数学 数学部分简介 符号 进位制 位运算 二进制集合操作 平衡三进制 高精度计算 快速幂 置换和排列 弧度制与坐标系 复数 数论 数论 数论基础 素数 最大公约数 数论分块 欧拉函数 筛法 Meissel–Lehmer 算法 分解质因数 裴蜀定理 类欧几里德算法 欧拉定理 & 费马小定理 乘法逆元 线性同余方程 中国剩余定理 升幂引理 威尔逊定理 卢卡斯定理 同余方程 二次剩余 原根 离散对数 剩余 莫比乌斯反演 杜教筛 Powerful Number 筛 Min_25 筛 洲阁筛 连分数 Stern–Brocot 树与 Farey 序列 二次域 循环连分数 Pell 方程 多项式与生成函数 多项式与生成函数 多项式与生成函数简介 代数基本定理 快速傅里叶变换 快速数论变换 快速沃尔什变换 Chirp Z 变换 多项式牛顿迭代 多项式多点求值|快速插值 多项式初等函数 常系数齐次线性递推 多项式平移|连续点值平移 符号化方法 普通生成函数 指数生成函数 狄利克雷生成函数 组合数学 组合数学 排列组合 抽屉原理 容斥原理 康托展开 斐波那契数列 斐波那契数列 目录 卢卡斯数列 斐波那契数列通项公式 解析解 卢卡斯数列通项公式 矩阵形式 快速倍增法 性质 斐波那契数列与卢卡斯数列的关系 斐波那契编码 模意义下周期性 皮萨诺周期 习题 错位排列 卡特兰数 斯特林数 贝尔数 伯努利数 Entringer Number Eulerian Number 分拆数 范德蒙德卷积 图论计数 线性代数 线性代数 线性代数简介 向量 内积和外积 矩阵 初等变换 行列式 线性空间 线性基 线性映射 特征多项式 对角化 Jordan标准型 线性规划 线性规划 线性规划简介 单纯形算法 群论 群论 群论简介 置换群 概率论 概率论 基本概念 条件概率与独立性 随机变量 随机变量的数字特征 概率不等式 博弈论 博弈论 博弈论简介 公平组合游戏 非公平组合游戏 反常游戏 数值算法 数值算法 插值 数值积分 高斯消元 牛顿迭代法 傅里叶-莫茨金消元法 序理论 杨氏矩阵 Schreier–Sims 算法 Berlekamp–Massey 算法 数据结构 数据结构 数据结构部分简介 栈 队列 链表 哈希表 并查集 并查集 并查集 并查集复杂度 堆 堆 堆简介 二叉堆 配对堆 左偏树 块状数据结构 块状数据结构 分块思想 块状数组 块状链表 树分块 Sqrt Tree 单调栈 单调队列 ST 表 树状数组 线段树 李超线段树 区间最值操作 & 区间历史最值 划分树 二叉搜索树 & 平衡树 二叉搜索树 & 平衡树 二叉搜索树 & 平衡树 Treap Splay 树 WBLT Size Balanced Tree AVL 树 B 树 B+ 树 替罪羊树 Leafy Tree 笛卡尔树 红黑树 左偏红黑树 AA 树 2-3 树 2-3-4 树 跳表 可持久化数据结构 可持久化数据结构 可持久化数据结构简介 可持久化线段树 可持久化块状数组 可持久化平衡树 可持久化字典树 可持久化可并堆 树套树 树套树 线段树套线段树 平衡树套线段树 线段树套平衡树 树状数组套权值线段树 分块套树状数组 K-D Tree 动态树 动态树 Link Cut Tree 全局平衡二叉树 Euler Tour Tree Top Tree 析合树 PQ 树 手指树 霍夫曼树 图论 图论 图论部分简介 图论相关概念 图的存储 DFS(图论) BFS(图论) 树上问题 树上问题 树基础 树的直径 最近公共祖先 树的重心 树链剖分 树上启发式合并 虚树 树分治 动态树分治 AHU 算法 树哈希 树上随机游走 矩阵树定理 有向无环图 拓扑排序 最小生成树 斯坦纳树 最小树形图 最小直径生成树 最短路 拆点 差分约束 k 短路 同余最短路 连通性相关 连通性相关 强连通分量 双连通分量 割点和桥 圆方树 点/边连通度 环计数问题 2-SAT 欧拉图 哈密顿图 二分图 最小环 平面图 图的着色 网络流 网络流 网络流简介 最大流 最小割 费用流 上下界网络流 Stoer–Wagner 算法 图的匹配 图的匹配 图匹配 增广路 二分图最大匹配 二分图最大权匹配 一般图最大匹配 一般图最大权匹配 Prüfer 序列 LGV 引理 弦图 最大团搜索算法 支配树 图上随机游走 计算几何 计算几何 计算几何部分简介 二维计算几何基础 三维计算几何基础 距离 Pick 定理 三角剖分 凸包 扫描线 旋转卡壳 半平面交 平面最近点对 随机增量法 反演变换 计算几何杂项 杂项 杂项 杂项简介 离散化 双指针 离线算法 离线算法 离线算法简介 CDQ 分治 整体二分 莫队算法 莫队算法 莫队算法简介 普通莫队算法 带修改莫队 树上莫队 回滚莫队 二维莫队 莫队二次离线 莫队配合 bitset 分数规划 随机化 随机化 随机函数 随机化技巧 爬山算法 模拟退火 悬线法 计算理论基础 字节顺序 约瑟夫问题 格雷码 表达式求值 在一台机器上规划任务 主元素问题 Garsia–Wachs 算法 15-puzzle Kahan 求和 珂朵莉树/颜色段均摊 专题 专题 RMQ 并查集应用 括号序列 线段树与离线询问 关于 Hulu 关于 Hulu 关于 Hulu 目录 卢卡斯数列 斐波那契数列通项公式 解析解 卢卡斯数列通项公式 矩阵形式 快速倍增法 性质 斐波那契数列与卢卡斯数列的关系 斐波那契编码 模意义下周期性 皮萨诺周期 习题 斐波那契数列斐波那契数列(The Fibonacci sequence,OEIS A000045)的定义如下:该数列的前几项如下:卢卡斯数列卢卡斯数列(The Lucas sequence,OEIS A000032)的定义如下:该数列的前几项如下:研究斐波那契数列,很多时候需要借助卢卡斯数列为工具。斐波那契数列通项公式第 个斐波那契数可以在 的时间内使用递推公式计算。但我们仍有更快速的方法计算。解析解解析解即公式解。我们有斐波那契数列的通项公式(Binet's Formula):这个公式可以很容易地用归纳法证明,当然也可以通过生成函数的概念推导,或者解一个方程得到。当然你可能发现,这个公式分子的第二项总是小于 ,并且它以指数级的速度减小。因此我们可以把这个公式写成这里的中括号表示取离它最近的整数。这两个公式在计算的时候要求极高的精确度,因此在实践中很少用到。但是请不要忽视!结合模意义下二次剩余和逆元的概念,在 OI 中使用这个公式仍是有用的。卢卡斯数列通项公式我们有卢卡斯数列的通项公式:与斐波那契数列非常相似。事实上有:也就是说, 和 恰好构成 二项式展开再合并同类项后的分子系数。也就是说,Pell 方程的全体解,恰好是恰好是卢卡斯数列和斐波那契数列。因此有矩阵形式斐波那契数列的递推可以用矩阵乘法的形式表达:设 ,我们得到于是我们可以用矩阵乘法在 的时间内计算斐波那契数列。此外,前一节讲述的公式也可通过矩阵对角化的技巧来得到。快速倍增法使用上面的方法我们可以得到以下等式:于是可以通过这样的方法快速计算两个相邻的斐波那契数(常数比矩乘小)。代码如下,返回值是一个二元组 。 1

2

3

4

5

6

7

8

9

10pair fib(int n) {

if (n == 0) return {0, 1};

auto p = fib(n >> 1);

int c = p.first * (2 * p.second - p.first);

int d = p.first * p.first + p.second * p.second;

if (n & 1)

return {d, c + d};

else

return {c, d};

}

性质斐波那契数列拥有许多有趣的性质,这里列举出一部分简单的性质:卡西尼性质(Cassini's identity):。附加性质:。取上一条性质中 ,我们得到 。由上一条性质可以归纳证明,。上述性质可逆,即 。GCD 性质:。以斐波那契数列相邻两项作为输入会使欧几里德算法达到最坏复杂度(具体参见 维基 - 拉梅)。斐波那契数列与卢卡斯数列的关系不难发现,关于卢卡斯数列与斐波那契数列的等式,与三角函数公式具有很高的相似性。比如:与很像。以及与很像。因此,卢卡斯数列与余弦函数很像,而斐波那契数列与正弦函数很像。比如,根据可以得到两下标之和的等式:于是推论就有二倍下标的等式:这也是一种快速倍增下标的办法。同样地,也可以仿照三角函数的公式,比如奇偶性、和差化积、积化和差、半角、万能代换等等,推理出更多有关卢卡斯数列与斐波那契数列的相应等式。斐波那契编码我们可以利用斐波那契数列为正整数编码。根据 齐肯多夫定理,任何自然数 可以被唯一地表示成一些斐波那契数的和:并且 (即不能使用两个相邻的斐波那契数)于是我们可以用 的编码表示一个正整数,其中 则表示 被使用。编码末位我们强制给它加一个 1(这样会出现两个相邻的 1),表示这一串编码结束。举几个例子:给 编码的过程可以使用贪心算法解决:从大到小枚举斐波那契数 ,直到 。把 减掉 ,在编码的 的位置上放一个 1(编码从左到右以 0 为起点)。如果 为正,回到步骤 1。最后在编码末位添加一个 1,表示编码的结束位置。解码过程同理,先删掉末位的 1,对于编码为 1 的位置 (编码从左到右以 0 为起点),累加一个 到答案。最后的答案就是原数字。模意义下周期性考虑模 意义下的斐波那契数列,可以容易地使用抽屉原理证明,该数列是有周期性的。考虑模意义下前 个斐波那契数对(两个相邻数配对): 的剩余系大小为 ,意味着在前 个数对中必有两个相同的数对,于是这两个数对可以往后生成相同的斐波那契数列,那么他们就是周期性的。皮萨诺周期模 意义下斐波那契数列的最小正周期被称为 皮萨诺周期(Pisano periods,OEIS A001175)。皮萨诺周期总是不超过 ,且只有在满足 的形式时才取到等号。当需要计算第 项斐波那契数模 的值的时候,如果 非常大,就需要计算斐波那契数模 的周期。当然,只需要计算周期,不一定是最小正周期。容易验证,斐波那契数模 的最小正周期是 ,模 的最小正周期是 。显然,如果 与 互素, 的皮萨诺周期就是 的皮萨诺周期与 的皮萨诺周期的最小公倍数。计算周期还需要以下结论:结论 1:对于奇素数 , 是斐波那契数模 的周期。即,奇素数 的皮萨诺周期整除 。证明:此时 。由二项式展开:因为 和 两项都同余于 ,与 和 一致,所以 是周期。结论 2:对于奇素数 , 是斐波那契数模 的周期。即,奇素数 的皮萨诺周期整除 。证明:此时 。由二项式展开:模 之后,在 式中,只有 项留了下来;在 式中,有 、、,三项留了下来。于是 和 两项与 和 一致,所以 是周期。结论 3:对于素数 , 是斐波那契数模 的周期,等价于 是斐波那契数模 的周期。特别地, 是模 的皮萨诺周期,等价于 是模 的皮萨诺周期。证明:这里的证明需要把 看作一个整体。由于:因此:因为反方向也可以推导,所以 是斐波那契数模 的周期,等价于:当 是奇素数时,由 升幂引理,有:当 时,由 升幂引理,有:代入 为 和 , 为 和 ,上述条件也就等价于:因此也等价于 是斐波那契数模 的周期。因为周期等价,所以最小正周期也等价。三个结论证完。据此可以写出代码: 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40struct prime {

unsigned long long p;

int times;

};

struct prime pp[2048];

int pptop;

unsigned long long get_cycle_from_mod(

unsigned long long mod) // 这里求解的只是周期,不一定是最小正周期

{

pptop = 0;

srand(time(0));

while (n != 1) {

__int128_t factor = (__int128_t)10000000000 * 10000000000;

min_factor(mod, &factor); // 计算最小素因数

struct prime temp;

temp.p = factor;

for (temp.times = 0; mod % factor == 0; temp.times++) {

mod /= factor;

}

pp[pptop] = temp;

pptop++;

}

unsigned long long m = 1;

for (int i = 0; i < pptop; ++i) {

int g;

if (pp[i].p == 2) {

g = 3;

} else if (pp[i].p == 5) {

g = 20;

} else if (pp[i].p % 5 == 1 || pp[i].p % 5 == 4) {

g = pp[i].p - 1;

} else {

g = (pp[i].p + 1) << 1;

}

m = lcm(m, g * qpow(pp[i].p, pp[i].times - 1));

}

return m;

}

习题SPOJ - Euclid Algorithm RevisitedSPOJ - Fibonacci SumHackerRank - Is FiboProject Euler - Even Fibonacci numbers洛谷 P4000 斐波那契数列 本页面主要译自博文 Числа Фибоначчи 与其英文翻译版 Fibonacci Numbers。其中俄文版版权协议为 Public Domain + Leave a Link;英文版版权协议为 CC-BY-SA 4.0。本页面最近更新:2023/9/5 22:13:33,更新历史发现错误?想一起完善? 在 GitHub 上编辑此页!本页面贡献者:dkz051, Enter-tainer, EntropyIncreaser, FFjet, Great-designer, ImpleLee, jifbt, Junyan721113, ouuan, sshwy, Tiphereth-A, Xeonacid本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用Copyright © 2016 - 2024 OI Wiki Team Made with Material for MkDocs 最近更新:c59cf45f, 2024-03-

斐波那契数列为什么那么重要,所有关于数学的书几乎都会提到? - 知乎

斐波那契数列为什么那么重要,所有关于数学的书几乎都会提到? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册数学算法设计数列数学学习斐波那契数列为什么那么重要,所有关于数学的书几乎都会提到?关注者1,397被浏览916,653关注问题​写回答​邀请回答​好问题 13​添加评论​分享​27 个回答默认排序知乎用户​数学话题下的优秀答主一句话先回答问题:因为斐波那契数列在数学和生活以及自然界中都非常有用。下面我就尽我所能,讲述一下斐波那契数列。一、起源和定义斐波那契数列最早被提出是印度数学家Gopala,他在研究箱子包装物件长度恰好为1和2时的方法数时首先描述了这个数列。也就是这个问题:有n个台阶,你每次只能跨一阶或两阶,上楼有几种方法?而最早研究这个数列的当然就是斐波那契(Leonardo Fibonacci)了,他当时是为了描述如下情况的兔子生长数目:第一个月初有一对刚诞生的兔子第二个月之后(第三个月初)它们可以生育每月每对可生育的兔子会诞生下一对新兔子兔子永不死去这个数列出自他赫赫有名的大作《计算之书》(没有维基词条,坑),后来就被广泛的应用于各种场合了。这个数列是这么定义的:The On-Line Encyclopedia of Integer Sequences® (OEIS®)序号为A000045 - OEIS(注意,并非满足第三条的都是斐波那契数列,卢卡斯数列(A000032 - OEIS)也满足这一特点,但初始项定义不同)二、求解方法讲完了定义,再来说一说如何求对应的项。斐波那契数列是编程书中讲递归必提的,因为它是按照递归定义的。所以我们就从递归开始讲起。1.递归求解int Fib(int n)

{

return n < 2 ? 1 : (Fib(n-1) + Fib(n-2));

}这是编程最方便的解法,当然,也是效率最低的解法,原因是会出现大量的重复计算。为了避免这种情况,可以采用递推的方式。2.递推求解int Fib[1000];

Fib[0] = 0;Fib[1] = 1;

for(int i = 2;i < 1000;i++) Fib[i] = Fib[i-1] + Fib[i-2];递推的方法可以在O(n)的时间内求出Fib(n)的值。但是这实际还是不够好,因为当n很大时这个算法还是无能为力的。接下来就要来讲一个有意思的东西:矩阵。3.矩阵递推关系学过代数的人可以看出,下面这个式子是成立的:\begin{bmatrix}

Fib(n+1) \\

Fib(n)

\end {bmatrix}

=\begin{bmatrix}

1&1 \\

1&0

\end{bmatrix}

\begin{bmatrix}

Fib(n) \\

Fib(n-1)

\end{bmatrix}不停地利用这个式子迭代右边的列向量,会得到下面的式子:\begin{bmatrix}

Fib(n+1) \\

Fib(n)

\end {bmatrix}

=\begin{bmatrix}

1&1 \\

1&0

\end{bmatrix}^{n}

\begin{bmatrix}

Fib(1) \\

Fib(0)

\end{bmatrix}这样,问题就转化为如何计算这个矩阵的n次方了,可以采用快速幂的方法。快速幂_百度百科是利用结合律快速计算幂次的方法。比如我要计算2^{20} ,我们知道2^{20} = 2^{16} * 2^{4} ,而2^{2} 可以通过2^{1} \times 2^{1} 来计算,2^{4} 而可以通过2^{2}\times 2^{2} 计算,以此类推。通过这种方法,可以在O(lbn)的时间里计算出一个数的n次幂。快速幂的代码如下:int Qpow(int a,int n)

{

int ans = 1;

while(n)

{

if(n&1) ans *= a;

a *= a;

n >>= 1;

}

return ans;

}

将上述代码中的整型变量a变成矩阵,数的乘法变成矩阵乘法,就是矩阵快速幂了。比如用矩阵快速幂计算斐波那契数列:#include

#include

using namespace std;

const int MOD = 10000;

struct matrix//定义矩阵结构体

{

int m[2][2];

}ans, base;

matrix multi(matrix a, matrix b)//定义矩阵乘法

{

matrix tmp;

for(int i = 0; i < 2; ++i)

{

for(int j = 0; j < 2; ++j)

{

tmp.m[i][j] = 0;

for(int k = 0; k < 2; ++k)

tmp.m[i][j] = (tmp.m[i][j] + a.m[i][k] * b.m[k][j]) % MOD;

}

}

return tmp;

}

int fast_mod(int n) // 求矩阵 base 的 n 次幂

{

base.m[0][0] = base.m[0][1] = base.m[1][0] = 1;

base.m[1][1] = 0;

ans.m[0][0] = ans.m[1][1] = 1; // ans 初始化为单位矩阵

ans.m[0][1] = ans.m[1][0] = 0;

while(n)

{

if(n & 1) //实现 ans *= t; 其中要先把 ans赋值给 tmp,然后用 ans = tmp * t

ans = multi(ans, base);

base = multi(base, base);

n >>= 1;

}

return ans.m[0][1];

}

int main()

{

int n;

while(scanf("%d", &n) && n != -1)

{

printf("%d\n", fast_mod(n));

}

return 0;

}

4.通项公式无论如何,对于一个数列,我们都是希望可以建立F(n)与n的关系,也就是通项公式,而用不同方法去求解通项公式也是很有意思的。(1)构造等比数列设f(n) + \alpha f(n-1) = \beta [f(n-1) + \alpha f(n-2)],化简得f(n)=(\beta -\alpha )f(n-1)+\alpha \beta f(n-2),比较系数得\beta -\alpha =1,\alpha \beta =1,解得\alpha =\frac{\sqrt{5}-1 }{2} ,\beta =\frac{\sqrt{5}+1 }{2} 由于f(n+1)+\alpha f(n)=[f(2)+\alpha f(1)]\beta ^{n-1} =\beta ^{n} 故有\frac{f(n+1)}{\beta ^{n+1}} +\frac{\alpha}{\beta } \frac{f(n)}{\beta ^{n} } =\frac{1}{\beta } ,设g(n)=\frac{f(n)}{\beta ^{n}} .则有g(n+1)+\frac{\alpha }{\beta } g(n)=\frac{1}{\beta } ,设g(n+1)+\lambda =-\frac{\alpha }{\beta } (g(n)+\lambda ),解得\lambda =-\frac{1}{\alpha +\beta } ,即{g(n)+\lambda }是等比数列。这样就有g(n)+\lambda=(-\frac{\alpha }{\beta } )^{n-1} (\frac{1}{\beta } +\lambda )到了现在,把上述解出的结果全部带入上式,稍作变形,我们就可以写出斐波那契数列的通项公式了f(n)=\frac{1}{\sqrt{5} } [(\frac{1+\sqrt{5} }{2} )^{n}-(\frac{1-\sqrt{5} }{2} )^{n}]这个方法还是比较麻烦的,但是非常基础。事实上还有其他更简单的方法。(2)线性代数解法这个解法首先用到\begin{bmatrix}

Fib(n+1) \\

Fib(n)

\end {bmatrix}

=\begin{bmatrix}

1&1 \\

1&0

\end{bmatrix}^{n}

\begin{bmatrix}

Fib(1) \\

Fib(0)

\end{bmatrix}公式,如果可以找到矩阵P使得PAP^{-1}为对角阵,我们就可以求出通项。下面需要一些高等代数知识,没学过的可直接跳过。首先令|\lambda E-A|=0,解得两个特征根\lambda_{1}=\frac{1-\sqrt{5} }{2} ,

\lambda_{2}=\frac{1+\sqrt{5} }{2} 两个特征向量为\alpha _{1}=[1,\frac{1+\sqrt{5} }{2} ] ^{T},\alpha _{2}=[1,\frac{-1+\sqrt{5} }{2} ] ^{T},则P=\begin{bmatrix}

1&1 \\

\frac{1+\sqrt{5}}{2} & \frac{\sqrt{5}-1}{2}

\end{bmatrix},

P^{-1}=\begin{bmatrix}

\frac{1-\sqrt{5}}{2}&1 \\

\frac{1+\sqrt{5}}{2}&-1

\end{bmatrix}而(PAP^{-1})^{n}=PAP^{-1}PAP^{-1}...PAP^{-1}=PA(P^{-1}P)A(P^{-1}P)A...AP^{-1}=PA^{n}P^{-1}解出A^{n}=P^{-1}(PAP^{-1})^{n}P,中间矩阵的n次方可以直接求出来:\begin{bmatrix}

\frac {1-\sqrt{5}}{2}&0 \\

0&\frac {1+\sqrt{5}}{2}

\end{bmatrix}^{n}=

\begin{bmatrix}

(\frac {1-\sqrt{5}}{2})^{n}&0\\

0&(\frac {1+\sqrt{5}}{2})^n

\end{bmatrix}然后可以轻易得到通项公式,上边已经给出,这里不再赘述。(3)特征方程解法通过方法(2),我们可以推导出一般的线性递推数列的通项求解方法,也就是特征方程法。我们可以发现,对于这种数列,通项总是可以表示为f(n)=C_{1} \lambda _{1}^{n} +C_{2} \lambda _{2}^{n}的形式,因此可以直接利用已知项求解C_{1},C_{2} 。具体做法如下:a.由递推数列构造特征方程x^{2}=x+1,解出两个特征值\lambda_{1}=\frac{1-\sqrt{5} }{2} ,

\lambda_{2}=\frac{1+\sqrt{5} }{2} 。b.带入f(0),f(1),列出如下方程:C_{1} +C_{1} =0\frac{1-\sqrt{5} }{2} C_{1} +\frac{1+\sqrt{5} }{2} C_{2} =1解得C_{1} =-\frac{1}{\sqrt{5} } ,C_{2} =\frac{1}{\sqrt{5} } .这样直接写出通项公式,是比较简单的做法。(4)母函数法(此方法涉及组合数学知识)设斐波那契数列的母函数为G(x),即G(x)=F_{0} +F_{1}x+F_{2}x^{2}+L+F_{n}x^{n}=1+x+(F_{0}+F_{1})x^{2}+L+(F_{n-1} +F_{n-2})x^{n}=1+(x+F_{1}x^{2}+F_{2}x^{3}+L+)+(F_{0}x^{2}+F_{1}x^3+L)=1+(x+x^{2})G(x)解得G(x)=\frac{1}{1-x-x^{2}} =\frac{1}{\sqrt{5} } \frac{1+\sqrt{5} }{2}\frac{1}{1-\frac{1+\sqrt{5} }{2}x} -\frac{1}{\sqrt{5} } \frac{1-\sqrt{5} }{2}\frac{1}{1-\frac{1-\sqrt{5} }{2}x}再由幂级数展开公式\frac{1}{1-x}=1+x+x^{2}+……合并同类项并与G(x)的系数比较即可。到这里,求解斐波那契数列通项的方法就说的差不多了。无论是计算机求解还是数学推导,都体现出了非常多的技巧。而斐波那契数列的许多特性,就更加有意思了。三、斐波那契数列的数学性质1.与黄金比的关系由通项公式,求相邻两项的商的极限,结果是黄金比,所以斐波那契数列又称为黄金比数列。斐波那契数列和黄金比还和一个有趣的数学概念——连分数有关:2.一些简单的规律(1)任意连续四个斐波那契数,可以构造出一个毕达哥拉斯三元组。如取1,1,2,3.中间两数相乘再乘2 ==》 4外层2数乘积==》3中间两数平方和==》5得到3,4,5.下一组是5,12,13,,有兴趣的读者可以再试着推一推,证明也是容易的。(2)整除性每3个连续的斐波那契数有且只有一个被2整除,每4个连续的斐波那契数有且只有一个被3整除,每5个连续的斐波那契数有且只有一个被5整除,每6个连续的斐波那契数有且只有一个被8整除,每7个连续的斐波那契数有且只有一个被13整除,…………每n个连续的斐波那契数有且只有一个被f(n)整除.(3)一些恒等式3.杨辉三角中的斐波那契数列如图所示,每条斜线上的数的和就构成斐波那契数列。即有f(n)=C_{n-1}^{0} +C_{n-2}^{1}+L+C_{n-1-m}^{m}4.相关数列:卢卡斯(Lucas)数列卢卡斯数列的定义除了第0项为2之外,与斐波那契数列完全一致。即其通项公式为:卢卡斯数列和斐波那契数列有这些关系:F_{2n}=F_{n}L_{n} 5F_{n}=L_{n-1}+L_{n+1}L_{n}^{2}=5 F_{n}^{2}+4(-1)^{n}\lim_{n \rightarrow \infty }{\frac{L_{n}}{F_{n}} } =\sqrt{5} L_{n}=F_{n-1}+F_{n+1}5.组合数学(1)一些恒等式(2)同余特性(F(m),F(n))=(m,n)F(m)|F(n)\Leftrightarrow m|n当p为大于5的素数时,有:F(p-(\frac{p}{5}))\equiv 0(modp) F(p)\equiv (\frac{p}{5}) (modp) F(p+(\frac{p}{5}))\equiv 1(modp) 其中斐波那契数列还有许许多多的性质,我就不再一一介绍了。跑题了这么久,终于开始要真正回答问题了:斐波那契数列有什么用?四、斐波那契数列的应用1.算法a.斐波那契堆斐波那契堆(Fibonacci heap)是计算机科学中最小堆有序树的集合。它和二项式堆有类似的性质,可用于实现合并优先队列。特点是不涉及删除元素的操作有O(1)的平摊时间,用途包括稠密图每次Decrease-key只要O(1)的平摊时间,和二项堆的O(lgn)相比是巨大的改进。斐波那契堆由一组最小堆构成,这些最小堆是有根的无序树。可以进行插入、查找、合并和删除等操作1)插入:创建一个仅包含一个节点的新的斐波纳契堆,然后执行堆合并2)查找:由于用一个指针指向了具有最小值的根节点,因此查找最小的节点是平凡的操作。3)合并:简单合并两个斐波纳契堆的根表。即把两个斐波纳契堆的所有树的根首尾衔接并置。4)删除(释放)最小节点分为三步:查找最小的根节点并删除它,其所有的子节点都加入堆的根表,即它的子树都成为堆所包含的树;需要查找并维护堆的最小根节点,但这耗时较大。为此,同时完成堆的维护:对堆当前包含的树的度数从低到高,迭代执行具有相同度数的树的合并并实现最小树化调整,使得堆包含的树具有不同的度数。这一步使用一个数组,数组下标为根节点的度数,数组的值为指向该根节点指针。如果发现具有相同度数的其他根节点则合并两棵树并维护该数组的状态。对当前堆的所有根节点查找最小的根节点。5)降低一个点的键值:对一个节点的键值降低后,自键值降低的节点开始自下而上的迭代执行下述操作,直至到根节点或一个未被标记(marked)节点为止:如果当前节点键值小于其父节点的键值,则把该节点及其子树摘下来作为堆的新树的根节点;其原父节点如果是被标记(marked)节点,则也被摘下来作为堆的新树的根节点;如果其原父节点不是被标记(marked)节点且不是根节点,则其原父节点被加标记。如果堆的新树的根节点被标记(marked),则去除该标记。6)删除节点:把被删除节点的键值调整为负无穷小,然后执行“降低一个节点的键值”算法,然后再执行“删除最小节点”算法。斐波那契堆b.欧几里得算法的时间复杂度欧几里得算法是求解两个正整数最大公约数的算法,又称辗转相除法。代码如下:int gcd(int a,int b)

{

return b ? gcd(b,a%b) : a;

}在最坏的情况下,我们可以证明,若a较小,需要计算的次数为n,则a>F(n-1).虽然说一般分析的时候会当成对数阶,但数论最常用的欧几里得算法竟然与斐波那契数列有关,也确实是很让人吃惊呢。2.物理学:氢原子能级问题假定我们现在有一些氢气原子,一个电子最初所处的位置是最低的能级(Ground lever of energy),属于稳定状态。它能获得一个能量子或二个能量子(Quanta of energy)而使它上升到第一能级或者第二能级。但是在第一级的电子如失掉一个能量子就会下降到最低能级,它如获得一个能量子就会上升到第二级来。现在研究气体吸收和放出能量的情形,假定最初电子是处在稳定状态即零能级,然后让它吸收能量,这电子可以跳到第1能级或第2能级。然后再让这气体放射能量,这时电子在1级能级的就要下降到0能级,而在第2能级的可能下降到0能级或者第1能级的位置去。电子所处的状态可能的情形是:1、2、3、5、8、13、21…种。这是斐波那契数列的一部份。3.自然界:植物的生长科学家发现,一些植物的花瓣、萼片、果实的数目以及排列的方式上,都有一个神奇的规律,它们都非常符合著名的斐波那契数列。例如:蓟,它们的头部几乎呈球状。在下图中,你可以看到两条不同方向的螺旋。我们可以数一下,顺时针旋转的(和左边那条旋转方向相同)螺旋一共有13条,而逆时针旋转的则有21条。此外还有菊花、向日葵、松果、菠萝等都是按这种方式生长的。还有菠萝、松子等,也都符合这个特点,一般会出现34,55,89和144这几个数字。最后上一张“斐波那契树”的图片:是的,这玩意就长这样,这种植物是存在的。4.波浪理论与股市这个答主不懂,大家可自行阅读文章波浪理论斐波那契数列与黄金分割率。不过波浪的形状确实符合下边要说的斐波那契螺旋:5.斐波那契螺旋斐波那契螺旋又称黄金螺旋,在自然界中广泛存在。如图是一个边长为斐波那契数列的正方形组成的矩形。(加一句:看着这个图,是不是能发现是显而易见的?)这样连起来就是斐波那契螺旋了贝壳螺旋轮廓线向日葵的生长神奇的花6.建筑学7.据说一个小男孩参考斐波那契数列发明了太阳能电池树:一名13岁的男孩根据斐波那契数列发明了太阳能电池树,其产生的电力比太阳能光伏电池阵列多20-50%。斐波那契数列类似从0和1开始,之后的数是之前两数的和,如0,1,1,2,3,5,8,13,21...Aidan Dwye在观察树枝分叉时发现它的分布模式类似斐波那契数列,这是大自然演化的一种结果,可能有助于树叶进行光合作用。因此,Dwye猜想为什么不按照斐波那契数列排列太阳能电池?他设计了太阳能电池树,发现它的输出电力提高了20%,每天接受光照的时间延长了2.5小时。8.斐波那契螺旋形的摇椅妈妈摇椅是设计师Patrick Messier为自己的妻子兼合作伙伴Sophie Fournier设计的,当时他们刚有了第一个宝宝。当Sophie宣布自己怀孕时,她说想要一把摇椅,但发现没有一把摇椅能满足美观舒适的标准,于是Patrick决定自己做一把。于是就有了这把妈妈摇椅。像是一个飘在空中的丝带,由一片纤维玻璃做成,曲线服从斐波那契数列分布,经过特殊的高光聚氨酯处理。五、数学上的扩展(1)广义斐波那契数列定义:a+b,ab\in Z,数列f(n)满足:其通项为:当a+b=1,ab=-1时即为斐波那契数列。(2)反斐波那契数列定义:g(n+2)=g(n)-g(n+1)反斐波那契数列相邻项比值的极限为-0.618。(3)巴都万数列(A000931 - OEIS)斐波那契数列可以刻画矩形,而巴都万数列则刻画的是三角形。其定义如下:(4)未解之谜:角谷猜想对一个正整数,若为奇数则乘3加1,若为偶数则除以2,通过有限次这样的操作,能否使得该数变成1?这个猜想和斐波那契数列又很大关系,具体的可以看角谷猜想的斐波那契数列现象。六、总结斐波那契数列是各个学科中都出现的小滑头,它许多漂亮的性质让我们着迷。上文我所描述的这些只是它的冰山一角,权当抛砖引玉。大家读完了我的答案,还可以再结合自己的专业去看一些相关的资料,更好的去了解这个有趣的数列。七、参考文献[1]http://www.hytc.cn/xsjl/szh/lec5.pdf[2]斐波那契数列_一米阳光[3]斐波那契数列的规律性[4]13岁男孩根据斐波那契数列发明太阳能电池树_cnBeta 人物_cnBeta.COM[5]服从斐波那契数列分布的妈妈摇椅[6]从斐波那契数列到黄金分割[7]斐波那契《计算之书》的研究.pdf 全文 文档投稿网[8]斐波那契数列['9]費氏數列[10]巴都萬數列[11]http://zh.wikipedia.org/wiki/%E5%8D%A2%E5%8D%A1%E6%96%AF%E6%95%B0[12]角谷猜想的斐波那契数列现象[13]The On-Line Encyclopedia of Integer Sequences® (OEIS®)[14]波浪理论斐波那契数列与黄金分割率编辑于 2015-04-27 13:25​赞同 2488​​115 条评论​分享​收藏​喜欢收起​知乎用户​数学话题下的优秀答主首先,斐波拉契数列和黄金分割有关,即相邻两项前后比值区域黄金分割数。这个是很著名的一点。其次,自然界中有很多现象满足斐波拉契数列,比如向日葵的种子分布。再次,斐波拉契数列在数学中和很多东西有关。比如杨辉三角的“对角和”就是它。同样在组合数学,二进制,数论(连分数)等方面都是可以见到它。它甚至可用来估计theta函数的某些值。甚至于希尔伯特第十问题(丢番图方程)的不可解反例就是可以从它构造而来。详情可见Fibonacci numberYuri Matiyasevich【来看解决第十问题的帅哥了】发布于 2015-02-08 15:03​赞同 38​​4 条评论​分享​收藏​喜欢

斐波那契数(0,1,1,2,3,5,8,13,...)

斐波那契数(0,1,1,2,3,5,8,13,...)

RT

首页/数学/数字/斐波那契数

斐波那契数字和序列

斐波那契数列是一个数字序列,其中每个数字是前两个数字的总和,但前两个数字分别为0和1。

斐波那契数列公式

黄金比例收敛

斐波那契序列表

斐波那契数列计算器

Fibonacci函数的C ++代码

斐波那契数列公式

例如:

F 0 = 0

F 1 = 1

F 2 = F 1 + F 0 = 1 + 0 = 1

F 3 = F 2 + F 1 = 1 + 1 = 2

F 4 = F 3 + F 2 = 2 + 1 = 3

F 5 = F 4 + F 3 = 3 + 2 = 5

...

黄金比例收敛

两个连续斐波那契数之比收敛于黄金比例:

φ是黄金比例=(1 +√ 5)/ 2≈1.61803399

斐波那契序列表

n

˚F ñ

0

0

1

1

2

1

3

2

4

3

5

5

6

8

7

13

8

21

9

34

10

55

11

89

12

144

13

233

14

377

15

610

16

987

17

1597

18

2584

19

4181

20

6765

斐波那契数列计算器

待定

斐波那契函数的C代码

double Fibonacci(unsigned int n)

{

    double f_n =n;

    double f_n1=0.0;

    double f_n2=1.0;

 

    if( n / 1 ) {

        for(int

k=2; k<=n; k++) {

           

f_n  = f_n1 + f_n2;

           

f_n2 = f_n1;

           

f_n1 = f_n;

        }

    }

 

    return f_n;

}

 

Advertising

号码

常数

指数

斐波那契数

乘法表

数字系统

百万分之一(ppm)

英里数(‰)

百分比(%)

素数

零号

快速表格

推荐网站

发送反馈

关于

 

首页| 网页| 数学| 电力| 计算器| 转换器| 工具类

© 2024

RT | 关于| 使用条款| 隐私政策| 管理Cookies

该网站使用Cookie来改善您的体验,分析流量并展示广告。学到更多

确定 管理设置

斐波那契數列_百度百科

斐波那契數列_百度百科

Beta

進入詞條

清除歷史記錄關閉

反饋

分享

複製鏈接

請複製以下鏈接發送給好友

https://baike.baidu.hk/item/斐波那契數列/99145

複製

複製成功

斐波那契數列

鎖定

斐波那契數列(Fibonacci sequence),又稱黃金分割數列

[1] 

,因數學家萊昂納多·斐波那契(Leonardo Fibonacci)以兔子繁殖為例子而引入,故又稱“兔子數列”,其數值為:1、1、2、3、5、8、13、21、34……在數學上,這一數列以如下遞推的方法定z義:F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)。

[2] 

中文名

斐波那契數列

外文名

Fibonacci sequence

別    名

黃金分割數列

兔子數列

表達式

F[n]=F[n-1]+F[n-2](n>=2,F[0]=1,F[1]=1)

提出者

萊昂納多·斐波那契

提出時間

1202年

適用領域

代數

應用學科

數學

目錄

1

定義

2

由來

3

通項公式

遞推公式

通項公式內容

通項公式推導

4

特性

平方與前後項

與集合子集數量的關係

奇數項求和

偶數項求和

平方求和

隔項關係

兩倍項關係

其他公式

5

應用

與黃金分割比的關係

楊輝三角

矩形面積

質數數量

尾數循環

自然界中“巧合”

數字謎題

影視作品中的斐波那契數列

6

推廣

斐波那契—盧卡斯數列

廣義斐波那契數列

7

相關的數學問題

排列組合

兔子繁殖問題

斐波那契數列定義

斐波那契數列是指這樣一個數列:1,1,2,3,5,8,13,21,34,55,89……這個數列從第3項開始 ,每一項都等於前兩項之和。

斐波那契數列由來

在數學歷史上,歐洲黑暗時期過後,第一位有影響的數學家是斐波那契(L.Fibonacci,1170一1250)。他早年就隨其父在北非師從阿拉伯人學習算學,後又遊歷地中海沿岸諸國,回意大利後寫成《算經[xq2] 》,也翻譯成《算盤書》。這部很有名的著作主要是一些源自古代中國、印度和希臘的數學問題的彙集,內容涉及整數和分數算法、開方法、二次和三次方程以及不定方程。特別是,在1228年的《算經》修訂版上載有如下“兔子問題”:

[3] 

如果每對兔子(一雄一雌)每月能生殖一對小兔子(也是一雄 一[xq3] 雌,下同),每對兔子第一個月沒有生殖能力,但從第二個 月[xq4] 以後便能每月生一對小兔子.假定[xq5] 這些兔子都沒有死亡現象,那麼從第一對剛出生的兔子開始,12 個月以後會有多少 對[xq6] 兔子呢? 解釋説明為:一個月[xq7] :只有一對兔子;第二個月: 仍然只有一對兔子;第三個月:這對兔子生了一對小兔子, 共有 1+1=2 對兔子.第四個月[xq8] :最初的一對兔子又生一對兔 子,共有 2+1=3 對兔子.則由第一個月到第十二個月兔子的 對數分別是:1,1,2,3,5,8,13,21,34,55,89,144, ……,後 人[xq9] 為了紀念提出兔子繁殖問題的斐波納契, 將這個兔子數 列[xq10] 稱為斐波那契數列, 即把 1,1,2,3,5,8,13,21,34……這樣的數列稱為斐波那契數列。

[4] 

斐波那契數列通項公式

斐波那契數列遞推公式

斐波那契數列:1,1,2,3,5,8,13,21,34,55,89…… ,以如下被以遞歸的方法定義:從第三項開始,每一項都等於前兩項之和,顯然這是一個線性遞推數列。

斐波那契數列通項公式內容

如上,又稱為“比內公式”,是用無理數表示有理數的一個範例。且由上式得到的值必為正整數。

[5] 

注:此時

斐波那契數列通項公式推導

(1)方法一:利用特徵方程(線性代數解法)線性遞推數列的特徵方程為:

解得:

則:

由公式

得:

解得

(2)方法二:待定係數法構造等比數列1(初等代數解法)設常數

,使得

時,有:

聯立以上

個式子,得:

上式可化簡得:

那麼:

(這是一個以

為首項、以

為末項、

為公比的等比數列的各項的和)。

, 的解為

,則

(3)方法三:待定係數法構造等比數列(初等代數解法)設

構造方程

解得

所以:

由(1)、(2)式得:

令:

化簡可得:

(4)方法四:母函數法對於斐波那契數列

,有:

)令

那麼有:

因此

.不難證明:

因此

再利用展開式

於是就可以得

其中

因此可以得到:

斐波那契數列特性

斐波那契數列平方與前後項

從第二項開始(構成一個新數列,第一項為1,第二項為2,……),每個偶數項的平方都比前後兩項之積多1,每個奇數項的平方都比前後兩項之積少1。如:第二項 1 的平方比它的前一項 1 和它的後一項 2 的積 2 少 1,第三項 2 的平方比它的前一項 1 和它的後一項 3 的積 3 多 1。(注:奇數項和偶數項是指項數的奇偶,而並不是指數列的數字本身的奇偶,比如從數列第二項 1 開始數,第 4 項 5 是奇數,但它是偶數項,如果認為 5 是奇數項,那就誤解題意,怎麼都説不通)證明經計算可得:

斐波那契數列與集合子集數量的關係

斐波那契數列的第n+2項同時也代表了集合

中所有不包含相鄰正整數的子集個數。

斐波那契數列奇數項求和

斐波那契數列偶數項求和

斐波那契數列平方求和

斐波那契數列隔項關係

斐波那契數列兩倍項關係

斐波那契數列其他公式

如果

……,則有:

,則有:

斐波那契數列應用

斐波那契數列與黃金分割比的關係

這樣一個完全是自然數的數列,通項公式是用無理數來表達的。而且當 趨向於無窮大時,前一項與後一項的比值越來越逼近黃金分割0.618(或者説後一項與前一項的比值小數部分越來越逼近 0.618)。

[2] 

……

……

……越到後面,

的比值越接近黃金比。證明:由

,兩邊同時除以由

得到:

的極限存在,設其極限為

, 則

斐波那契數列楊輝三角

將楊輝三角左對齊,成圖1所示排列,將同一斜行的數加起來,即得一數列 1、1、2、3、5、8、……

公式表示如下:

斐波那契數列矩形面積

斐波那契數列與矩形面積的生成相關,由此可以導出一個斐波那契數列的一個性質。

斐波那契數列前幾項的平方和可以看做不同大小的正方形,由於斐波那契的遞推公式,它們可以拼成一個大的矩形。這樣所有小正方形的面積之和等於大矩形的面積。則可以得到如下的恆等式:

斐波那契數列質數數量

斐波那契數列的整除性與質數生成性每3個連續的數中有且只有一個被 2 整除,每4個連續的數中有且只有一個被 3 整除,每5個連續的數中有且只有一個被 5 整除,每6個連續的數中有且只有一個被 8 整除,每7個連續的數中有且只有一個被 13 整除,每8個連續的數中有且只有一個被 21 整除,每9個連續的數中有且只有一個被 34 整除,.......我們看到第5、7、11、13、17、23位分別是質數:5,13,89,233,1597,28657(第19位不是)

斐波那契數列尾數循環

斐波那契數列的個位數:一個60步的循環:11235,83145,94370,77415,61785,38190,99875,27965,16730,33695,49325,72910…進一步,斐波那契數列的最後兩位數是一個300步的循環,最後三位數是一個1500步的循環,最後四位數是一個15000步的循環,最後五位數是一個150000步的循環。

斐波那契數列自然界中“巧合”

斐波那契數列表面看來似乎簡單有趣,然而人們發現該數列不僅與黃金分割數,組合數學及概率論等一系列深刻的數學問題關係密切,甚至發現植物枝權與葉序分佈、菠蘿紋理與蜂房結構等大量的自然現象也遵從斐波那契數列的奇妙構造。

[6] 

例如,樹木的生長,由於新生的枝條,往往需要一段“休息”時間,供自身生長,而後才能萌發新枝。所以,一株樹苗在一段間隔,例如一年,以後長出一條新枝;第二年新枝“休息”,老枝依舊萌發;此後,老枝與“休息”過一年的枝同時萌發,當年生的新枝則次年“休息”。這樣,一株樹木各個年份的枝椏數,便構成斐波那契數列。這個規律,就是生物學上著名的“魯德維格定律”。另外,觀察延齡草、野玫瑰、南美血根草、大波斯菊、金鳳花、耬鬥菜、百合花、蝴蝶花的花瓣,可以發現它們花瓣數目具有斐波那契數:3、5、8、13、21……

其中百合花花瓣數目為 3,梅花 5 瓣,飛燕草 8 瓣,萬壽菊 13 瓣,向日葵 21 或 34 瓣,雛菊有 34、55 和 89 三個數目的花瓣。斐波那契螺旋:在大自然裏存在着許多斐波那契螺旋線形態,向日葵花盤有着兩組緊密盤旋的螺旋線,一組按照順時針旋轉的數目為21,另一組按照逆時 針旋轉的數目為3 4,正 好是斐波 那契數列中相鄰的兩個 數且比值接近黃金分割比,而且排列的種子以中心為點四面發散形成的角度接近於黃金角;銀河系中的四條主旋臂旋轉分開組成大約為12度的角度,它所反映出來的螺旋形狀和斐波那契螺旋線幾乎完全相同;鸚鵡螺外殼截面形狀為典型的斐波那契螺旋形,被認為是以斐氏數列形成的最完美的螺旋線。

[7] 

事實上許多常見的植物,如我們食用的青菜、包心菜、芹菜等的葉子排列也具有這個特性。儘管這些順逆螺旋的數目並不固定,但它們也並不隨機,它們是斐波那契序列中的相鄰數字。這些植物懂得斐波那契數列嗎?當然並非如此,它們只是按照自然的規律才進化成這樣。這似乎是植物排列種子的“優化方式”,它能使所有種子具有差不多的大小空間卻又疏密得當,不至於在圓心處擠了太多的種子而在圓周處卻又稀稀拉拉。葉子的生長方式也是如此,對於許多植物來説,每片葉子從中軸附近生長出來,為了在生長的過程中一直都能最佳地利用空間(要考慮到葉子是一片一片逐漸地生長出來,而不是一下子同時出現的),每片葉子和前一片葉子之間的角度應該是222.5度,這個角度被稱為“黃金角度”,因為它和整個圓周360度之比是黃金分割數1.618033989⋯⋯的倒數,而這種生長方式就決定了斐波那契螺旋的產生。向日葵的種子排列形成的斐波那契螺旋有時能達到89條,甚至144條。

[8] 

斐波那契數列數字謎題

三角形的三邊關係定理和斐波那契數列的一個聯繫:現有長為 144 cm 的鐵絲,要截成n小段(n≥3),每段的長度不小於 1 cm,如果其中任意三小段都不能拼成三角形,則n的最大值為:由於形成三角形的充要條件是任何兩邊之和大於第三邊,因此不構成三角形的條件就是存在兩邊之和不超過另一邊。截成的鐵絲最小為 1,因此可以放 2 個 1,第三條線段就是 2(為了使得n最大,因此要使剩下來的鐵絲儘可能長,因此每一條線段總是前面的相鄰2段之和),依次為:1、1、2、3、5、8、13、21、34、55,以上各數之和為 143,與 144 相差 1,因此可以取最後一段為 56,這時 n 達到最大為 10。我們看到,“每段的長度不小於 1”這個條件起了控制全局的作用,正是這個最小數1 產生了斐波那契數列,如果把 1 換成其他數,遞推關係保留了,但這個數列消失了。這裏,三角形的三邊關係定理和斐波那契數列發生了一個聯繫。在這個問題中,這個143是斐波那契數列的前

項和,我們是把144超出143的部分加到最後的一個數上去,如果加到其他數上,就有3條線段可以構成三角形了。

斐波那契數列影視作品中的斐波那契數列

斐波那契數列在歐美可謂是盡人皆知,於是在電影這種通俗藝術中也時常出現,比如在風靡一時的《達芬奇密碼》裏它就作為一個重要的符號和情節線索出現,在《魔法玩具城》裏又是在店主招聘會計時隨口問的問題。可見此數列就像黃金分割一樣流行。可是雖説叫得上名,多數人也就背過前幾個數,並沒有深入理解研究。在電視劇中也出現斐波那契數列,比如:日劇《考試之神》第五回,義嗣做全國模擬考試題中的最後一道數學題~在FOX 熱播美劇《Fringe》中更是無數[xq1] 次引用,甚至作為全劇宣傳海報的設計元素之一。

斐波那契數列推廣

斐波那契數列斐波那契—盧卡斯數列

盧卡斯數列 1、3、4、7、11、18…,也具有斐波那契數列同樣的性質。(我們可稱之為斐波那契—盧卡斯遞推:從第三項開始,每一項都等於前兩項之和

)盧卡斯數列的通項公式為

這兩個數列還有一種特殊的聯繫(如下表所示),

,及

12345678910…斐波那契數列F(n)11235813213455…盧卡斯數列L(n)13471118294776123…

138215514437798725846765…類似的數列還有無限多個,我們稱之為斐波那契—盧卡斯數列。如1,4,5,9,14,23…,因為1,4開頭,可記作F[1,4],斐波那契數列就是F[1,1],盧卡斯數列就是F[1,3],斐波那契—盧卡斯數列就是F[a,b]。斐波那契—盧卡斯數列之間的廣泛聯繫:①任意兩個或兩個以上斐波那契—盧卡斯數列之和或差仍然是斐波那契—盧卡斯數列。如:F[1,4]n+F[1,3]n=F[2,7]n,F[1,4]n-F[1,3]n=F[0,1]n=F[1,1](n-1),n12345678910…F[1,4]n14591423376097157…F[1,3]n13471118294776123…F[1,4]n-F[1,3]n0112358132134…F[1,4]n+F[1,3]n27916254166107173280…②任何一個斐波那契—盧卡斯數列都可以由斐波那契數列的有限項之和獲得,如n12345678910…F[1,1](n)11235813213455…F[1,1](n-1)0112358132134…F[1,1](n-1)0112358132134…F[1,3]n13471118294776123…黃金特徵與孿生斐波那契—盧卡斯數列斐波那契—盧卡斯數列的另一個共同性質:中間項的平方數與前後兩項之積的差的絕對值是一個恆值,斐波那契數列:

盧卡斯數列:|3*3-1*4|=|4*4-3*7|=…=5F[1,4]數列:|4*4-1*5|=11F[2,5]數列:|5*5-2*7|=11F[2,7]數列:|7*7-2*9|=31斐波那契數列這個值是1最小,也就是前後項之比接近黃金比例最快,我們稱為黃金特徵,黃金特徵1的數列只有斐波那契數列,是獨生數列。盧卡斯數列的黃金特徵是5,也是獨生數列。前兩項互質的獨生數列只有斐波那契數列和盧卡斯數列這兩個數列。而F[1,4]與F[2,5]的黃金特徵都是11,是孿生數列。F[2,7]也有孿生數列:F[3,8]。其他前兩項互質的斐波那契—盧卡斯數列都是孿生數列,稱為孿生斐波那契—盧卡斯數列。

斐波那契數列廣義斐波那契數列

斐波那契數列的黃金特徵1,還讓我們聯想到佩爾數列:1,2,5,12,29,…,也有|2*2-1*5|=|5*5-2*12|=…=1(該類數列的這種特徵值稱為勾股特徵)。佩爾數列Pn的遞推規則:

據此類推到所有根據前兩項導出第三項的通用規則:

,稱為廣義斐波那契數列。當

時,我們得到斐波那契—盧卡斯數列。當

時,我們得到佩爾—勾股弦數(跟邊長為整數的直角三角形有關的數列集合)。當

時,我們得到等差數列。其中

時,我們得到自然數列1,2,3,4,5…自然數列的特徵就是每個數的平方與前後兩數之積的差為 1(等差數列的這種差值稱為自然特徵)。具有類似黃金特徵、勾股特徵、自然特徵的廣義——斐波那契數列

。當

,時,我們得到等比數列1,2,4,8,16…

斐波那契數列相關的數學問題

斐波那契數列排列組合

有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第 10 級台階有幾種不同的走法?這就是一個斐波那契數列:登上第一級台階有一種登法;登上兩級台階,有兩種登法;登上三級台階,有三種登法;登上四級台階,有五種登法……1,2,3,5,8,13…… 所以,登上十級,有 89 種走法。類似的,一枚均勻的硬幣擲10次,問不連續出現正面的可能情形有:答案是

種。求遞推數列

的通項公式由數學歸納法可以得到:

,將斐波那契數列的通項式代入,化簡就得結果。

斐波那契數列兔子繁殖問題

一般而言,兔子在出生兩個月後,就有繁殖能力,一對兔子每個月能生出一對小兔子來。如果所有兔子都不死:我們不妨拿新出生的一對小兔子分析一下:第一個月小兔子沒有繁殖能力,所以還是一對兩個月後,生下一對小兔對數共有兩對三個月以後,老兔子又生下一對,因為小兔子還沒有繁殖能力,所以一共是三對……依次類推可以列出下表:經過月數01234567891011…幼仔對數1011235813213455成兔對數01123581321345589總體對數1123581321345589144幼仔對數=前月成兔對數成兔對數=前月成兔對數+前月幼仔對數總體對數=本月成兔對數+本月幼仔對數可以看出幼仔對數、成兔對數、總體對數都構成了一個數列。這個數列有關十分明顯的特點,那是:前面相鄰兩項之和,構成了後一項,即斐波那契數列。

參考資料

1.

  

瓦羅別耶夫. 斐波那契數列[M]. 哈爾濱:哈爾濱工業大學出版社,2010.

2.

  

孫衞衞, 杜美華. 關於斐波那契數列三個極限性質的研究[J]. 哈爾濱師範大學自然科學學報, 2023, 39(03): 1-3.

3.

  

張清利, 張國豔. 由斐波那契數列談數學美[J]. 北京廣播電視大學學報, 2004(4): 46-封三.

4.

  

於海傑. 奇妙的斐波那契數列[J]. 赤峯學院學報(自然科學版,2014(16): 1-2.

5.

  

課程教材研究所數學課程教材研究開發中心. 初等數論[M]. 北京:人民教育出版社,2003

6.

  

吳振奎. 世界數學名著欣賞叢書:斐波那契數列[M]. 瀋陽:遼寧教育出版社,1995.

7.

  

吳振奎. 世界數學名著欣賞叢書:斐波那契數列[M]. 瀋陽:遼寧教育出版社,1995.

8.

  

異調. 植物如何優化器官的排列方式?斐波那契螺旋[J]. 科學24小時, 2004(5):24.

圖集

斐波那契數列的概述圖(1張)

詞條統計

瀏覽次數:次

編輯次數:514次歷史版本

最近更新:

CJQ_QIU

(2023-12-27)

1

定義

2

由來

3

通項公式

3.1

遞推公式

3.2

通項公式內容

3.3

通項公式推導

4

特性

4.1

平方與前後項

4.2

與集合子集數量的關係

4.3

奇數項求和

4.4

偶數項求和

4.5

平方求和

4.6

隔項關係

4.7

兩倍項關係

4.8

其他公式

5

應用

5.1

與黃金分割比的關係

5.2

楊輝三角

5.3

矩形面積

5.4

質數數量

5.5

尾數循環

5.6

自然界中“巧合”

5.7

數字謎題

5.8

影視作品中的斐波那契數列

6

推廣

6.1

斐波那契—盧卡斯數列

6.2

廣義斐波那契數列

7

相關的數學問題

7.1

排列組合

7.2

兔子繁殖問題

百科協議    隱私協議    意見反饋

Beta

進入詞條

清除歷史記錄關閉

反饋

登錄

斐波纳契数列 - 知乎

斐波纳契数列 - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册斐波纳契数列斐波纳契数列(Fibonacci sequence)是数学界十分著名的数列,小说《达芬奇密码》中,卢浮宫馆长被人杀害陈尸在地板上,馆长脱光了衣服,摆成达·芬奇名画维特鲁威人并且留下了一些奇怪的密码…查看全部内容关注话题​管理​分享​百科讨论精华视频等待回答详细内容概述内容斐波纳契数列(Fibonacci sequence)是数学界十分著名的数列,小说《达芬奇密码》中,卢浮宫馆长被人杀害陈尸在地板上,馆长脱光了衣服,摆成达·芬奇名画维特鲁威人并且留下了一些奇怪的密码。这些让人难以琢磨的密码就是斐波纳契数列。其前几项是1,1,2,3,5,8,13,21,34,55,89,144·······,这个数列最大特点就是其中每一项都等于其前两项的和。从第三个数起,每个数与它后面那个数的比值,都很接近于0.618,正是“黄金分割”。斐波那契数列又称“兔子数列”、黄金分割数列。这个看上去很简单的数列,却总是出现在人们的眼前。蜻蜓翅膀、蜂巢、菠萝表面的突起等,都是按照这个数列排列的。许多花朵的花瓣数目也具有斐波纳契数列的排列规律,如玫瑰、菊花、向日葵等。斐波纳契和斐波纳契数列中世纪西欧经济开始繁荣,西方商人到东方经商的逐渐增多,意大利数学家斐波纳契就是其中的一位。斐波纳契这个名字其实是生活于12世纪末至13世纪上半叶的比萨的莱奥纳多的绰号,因为莱奥纳多的父亲名叫Guilielmo,外号Bonacci,而Fibonacci意即Bonacci之子。 他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团队聘任为外交领事,派驻地点相当于今日的阿尔及利亚地区,莱昂纳多因此得以在一个阿拉伯老师的指导下研究数学。他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯研究数学。斐波纳契斐波纳契在1202年所著、1228年修订再版的《算法之书》中提出了一个著名的兔子问题,大意是:若有一对幼兔,第二年长成年,第三年开始每年产下一对幼兔;所生每对幼兔也在第二年成年,第三年开始每年产下一对幼兔;依此类推,假定每次产下的幼兔都是一雌一雄,也没有生病和死亡,这样得到的每年存栏的兔子对数: u(1) = 1, u(2) = 1, u(3) =2, u(4) =3, u(5)=5, u(6) =8,······称为斐波纳契数列。设u(0) =0,则u(k)满足递推关系 u(k+2) = u(k) +u(k+1),k= 0,1,2,···以及初始条件:u(0) =0,u(1) = 1。兔子和斐波纳契数列19世纪法国数学家比内(公元1786-1856)首先提出了斐波纳契数列的通项公式,故命名为比内公式:比内公式自然界中的斐波纳契数列不但兔子的生育遵循着斐波纳契数列的规律,自然界中树枝的分岔、植物的花瓣数目也符合这个数列的规律。有一位学者一片片的数过一朵重瓣芍药花的花瓣,最后得到的结果是233瓣, 233正好是斐波纳契数列中的一项。还有一位中学生物教师,采得一棵松塔, 剥去鳞片数其片数,最后数得的鳞片数目是144片,这一结果仍在斐波纳契数列内。植物学家在研究植物“叶序”(枝、叶及种子在植株上的排列与分布)时发现斐波纳契数列仍亦起着重要的作用。如向日葵的花盘,从花盘中心向外辐射出来的对数螺线弧把花盘分割成含有花籽的菱形小块,我们会发现顺时针方向伸展的螺线数目与逆时针方向伸展的螺线数目的比值一般是13/21、21/34、34/55或55/144。每个比值的分子,分母都是斐波那契数列中相邻的两项。显然,其比值的分子、分母的数值越大时,种子越多,向日葵的品种相对也较好。如此的原因很简单:这样的布局能使植物的生长疏密得当、最充分地利用阳光和空气,所以很多植物都在亿万年的进化过程中演变成了如今的模样。当然受气候或病虫害的影响,真实的植物往往没有完美的斐波纳契螺旋。向日葵的生长任何菊科植物如雏菊、翠菊等的花盘也都具有以上所述的特性,只是因为菊科植物花盘较小,不容易得到验证。但植物学家还是测算出了菊科植物延命菊花头状花序上的两族反向螺线条数的比是21/34。杉属植物的球果中出现的比值是5/8、8/13。我们观察莴头上的叶子,洋葱的层次,松果的圆锥螺线(两条反向螺线数目的比是5:8)及菠萝上瘤状物排列数目(8: 13)等,都可以看到上述相似的排列形式。“鲁德维格定律”斐波纳契螺旋线斐波纳契弧线也叫“黄金螺线”,第一,此趋势线以两个端点为准而画出,例如,最低点反向到最高点线上的两个点。三条弧线均以第二个点为中心画出,并在趋势线的斐波纳契水平: 38.2%,50%和61.8%交叉。斐波纳契弧线,是潜在的支持点和阻力点水平价格。斐波纳契弧线和斐波纳契扇形线常常在图表里同时绘画出。支持点和阻力点就是由这些线的交会点得出。要注意的是弧线的交叉点和价格曲线会根据图表数值范围而改变,因为弧线是圆周的一部分, 略它的形成总是一样的。黄金螺线将黄金螺线运用在摄影,能提高拍摄出出众的相片的几率。相对于三分法这个静态的方法,黄金螺线在我们用眼睛捕捉画面时提供了一个流动的线条。黄金螺线总在你的两面之内旋转,从顶部到底部,它可以使你的画面的构图更加的富于变化。总之,斐波纳契数列存在我们生活中的许多地方,虽然已有许多被我们所发现,但也许有更多的还有待我们去发现,与斐波纳契数列密切相关的黄金比例被运用在方方面面,但仍有待我们继续探索。参考文献:邱森,《线性代数探究性课题精编》,武汉大学出版社, 2011.Keith Ball,Strange Curves, Counting Rabbits, and other Mathematical Explorations,上海科技教育出版社; 第1版 (2011年12月5日).郭德才. 不可思议的斐波纳契数列[J]. 发明与创新:综合版, 2007(11):24-25.方陵生. 大自然中的斐波纳契数列之奇[J]. 科学与文化, 2004(9):19-20.罗文军. 数列中的一颗璀璨的明珠——斐波那契数列[J]., 2017(6).百科摘录1「知乎知识库」— 斐波纳契数列下的内容摘录einmal01斐波纳契数列(Fibonacci sequence)是数学界十分著名的数列,小说《达芬奇密码》中,卢浮宫馆长被人杀害陈尸在地板上,馆长脱光了衣服,摆成达·芬奇名画维特鲁威人并且留下了一些奇怪的密码。这些让人难以琢磨的密码就是斐波纳契数列。其前几项是1,1,2,3,5,8,13,21,34,55,89,144·······,这个数列最大特点就是其中每一项都等于其前两项的和。从第三个数起,每个数与它后面那个数的比值,都很接近于0.618,正是“黄金分割”。斐波那契数列又称“兔子数列”、黄金分割数列。这个看上去很简单的数列,却总是出现在人们的眼前。蜻蜓翅膀、蜂巢、菠萝表面的突起等,都是按照这个数列排列的。许多花朵的花瓣数目也具有斐波纳契数列的排列规律,如玫瑰、菊花、向日葵等。冯不悔 摘录于 2019-11-25浏览量309 万讨论量2742  帮助中心知乎隐私保护指引申请开通机构号联系我们 举报中心涉未成年举报网络谣言举报涉企侵权举报更多 关于知乎下载知乎知乎招聘知乎指南知乎协议更多京 ICP 证 110745 号 · 京 ICP 备 13052560 号 - 1 · 京公网安备 11010802020088 号 · 京网文[2022]2674-081 号 · 药品医疗器械网络信息服务备案(京)网药械信息备字(2022)第00334号 · 广播电视节目制作经营许可证:(京)字第06591号 · 服务热线:400-919-0001 · Investor Relations · © 2024 知乎 北京智者天下科技有限公司版权所有 · 违法和不良信息举报:010-82716601 · 举报邮箱:jubao@zhihu.