早教吧作业答案频道 -->数学-->
斐波那契数列Fn定义如下:F0=0,F1=1,F2=1,F3=2,.,Fn=Fn-1+Fn+2(n=2,3...)问:如果用大O表斐波那契数列Fn定义如下:F0=0,F1=1,F2=1,F3=2,.,Fn=Fn-1+Fn+2(n=2,3...)问:如果用大O表示Fn时递归函数的时间复杂度
题目详情
斐波那契数列Fn定义如下:F0=0,F1=1,F2=1,F3=2,.,Fn=Fn-1+Fn+2(n=2,3...) 问:如果用大O表
斐波那契数列Fn定义如下:F0=0,F1=1,F2=1,F3=2,.,Fn=Fn-1+Fn+2(n=2,3...)
问:如果用大O表示Fn时递归函数的时间复杂度是多少?
解析:
令G(x)=F0*x+F1*x^2+...+Fnx^n+1+...
其中
F2=F1+F0 ,F3=F2+F1 ,F4=F3+F2 ,...,Fn=Fn-1+Fn-2 ,...,F1=1 ,F0=0
于是
G(x)-x-x^2=F2*x^3+F4*x^5+...+Fn*x^n+1+...
=(F1+F0)*x^3+(F2+F1)*x^4+(F3+F2)*x5+(F4+F3)*x^6+...+(Fn-1+Fn-2)*x^n+1+...
=(F0*x^3+F1*x^4+...+Fn+1*x^n+1+...)+(F1*x^3+F2*x^4+...+Fn-1*x^n+1+...)
=x*2*G(x)+x*[G(x)-x]
则(1-x-x^2)*G(x)=x,有
G(x)=x / (1-x-x^2)=x/{ [1-(1+√5)/2*x)] *[1-(1-√5)/2*x)] }
设 α=(1+√5)/2,β=(1-√5)/2,利用待定系数法将上式分解为
G(x)=1/√5*[ 1/(1-α*x)-1/(1-β*x) ]=1/√5*[ (α-β)*x+(α^2-β^2)*x+...+...] ---->此处为何这样推导不解?请明解.
于是,Fn=1/√5*(α^n-β^n)≈ =1/ √5*[(1+√5)/2]^n
因此,根据大O表示法,递归计算Fn时递归函数的时间复杂度为
O{ [(1+√5)/2]^n }
斐波那契数列Fn定义如下:F0=0,F1=1,F2=1,F3=2,.,Fn=Fn-1+Fn+2(n=2,3...)
问:如果用大O表示Fn时递归函数的时间复杂度是多少?
解析:
令G(x)=F0*x+F1*x^2+...+Fnx^n+1+...
其中
F2=F1+F0 ,F3=F2+F1 ,F4=F3+F2 ,...,Fn=Fn-1+Fn-2 ,...,F1=1 ,F0=0
于是
G(x)-x-x^2=F2*x^3+F4*x^5+...+Fn*x^n+1+...
=(F1+F0)*x^3+(F2+F1)*x^4+(F3+F2)*x5+(F4+F3)*x^6+...+(Fn-1+Fn-2)*x^n+1+...
=(F0*x^3+F1*x^4+...+Fn+1*x^n+1+...)+(F1*x^3+F2*x^4+...+Fn-1*x^n+1+...)
=x*2*G(x)+x*[G(x)-x]
则(1-x-x^2)*G(x)=x,有
G(x)=x / (1-x-x^2)=x/{ [1-(1+√5)/2*x)] *[1-(1-√5)/2*x)] }
设 α=(1+√5)/2,β=(1-√5)/2,利用待定系数法将上式分解为
G(x)=1/√5*[ 1/(1-α*x)-1/(1-β*x) ]=1/√5*[ (α-β)*x+(α^2-β^2)*x+...+...] ---->此处为何这样推导不解?请明解.
于是,Fn=1/√5*(α^n-β^n)≈ =1/ √5*[(1+√5)/2]^n
因此,根据大O表示法,递归计算Fn时递归函数的时间复杂度为
O{ [(1+√5)/2]^n }
▼优质解答
答案和解析
G(x)=1/√5*[ 1/(1-α*x)-1/(1-β*x) ]=1/√5*[ (α-β)*x+(α^2-β^2)*x+...+...] 原因:
1/(1-t)=1+t+t^2+t^3.
将t分别替换成α*x和β*x,对应项合并,就可推导出
1/(1-t)=1+t+t^2+t^3.
将t分别替换成α*x和β*x,对应项合并,就可推导出
看了 斐波那契数列Fn定义如下:F...的网友还看了以下:
下列关于机械波的说法中正确的是()A.机械波是物质在空间的传播B.机械波是振动在介质中的传播C.机 2020-05-14 …
如何将复杂的波形分解成多个简单正弦波的叠加傅里叶级数的方法可能只能处理“可用函数表示的复杂波”,而 2020-06-16 …
关于斐波那契数列……设{fn}是斐波那契数列,则F1=F2=1,Fn=Fn-1=Fn-2.画出程序 2020-07-23 …
设{Fn}是斐波那契数列,则F1=F2=1,Fn=Fn-1+Fn-2,)如图是输出斐波那契数列的一 2020-07-23 …
递归次数的计算斐波那契数列Fn定义如下:F0=0,F1=1,Fn=Fn-1+Fn-2,n=2,3, 2020-07-23 …
C++打出斐波那契数列用递归、递推、数组的方法要递归、递推、数组的方法打出斐波那契数列,麻烦用C+ 2020-07-23 …
斐波那契数列Fn定义如下:F0=0,F1=1,F2=1,F3=2,.,Fn=Fn-1+Fn+2(n 2020-07-23 …
杂交波尔山羊一般可以体重长多大?1代的杂交波尔山羊八个月可以长多大? 2020-11-03 …
在以下说法中,正确的是()A.当某列声波产生多普勒效应时,相应声源的振动频率一定发生变化B.激光切割 2020-12-24 …
在以下说法中,正确的是()A.当某列声波产生多普勒效应时,相应声源的振动频率一定发生变化B.激光切割 2021-01-12 …