永发信息网

在verilog中实现斐波纳契数列求值

答案:2  悬赏:50  手机版
解决时间 2021-04-04 21:33
  • 提问者网友:夢醒日落
  • 2021-04-04 10:27
在verilog中实现斐波纳契数列求值
最佳答案
  • 五星知识达人网友:轻雾山林
  • 2021-04-04 11:46
斐波契数列:1123581321……

设F(n)该数列第n项(n∈N+)句写形式:
F(1)=F(2)=1,F(n)=F(n-1)+F(n-2) (n≥3)

显线性递推数列

通项公式推导:利用特征程

线性递推数列特征程:
X^2=X+1

X1=(1+√5)/2, X2=(1-√5)/2.

则F(n)=C1*X1^n + C2*X2^n
∵F(1)=F(2)=1
∴C1*X1 + C2*X2
C1*X1^2 + C2*X2^2
解C1=1/√5C2=-1/√5

∴F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}【√5表示根号5】

通项公式推导二:普通

设数r,s
使F(n)-r*F(n-1)=s*[F(n-1)-r*F(n-2)]
则r+s=1, -rs=1

n≥3
F(n)-r*F(n-1)=s*[F(n-1)-r*F(n-2)]
F(n-1)-r*F(n-2)=s*[F(n-2)-r*F(n-3)]
F(n-2)-r*F(n-3)=s*[F(n-3)-r*F(n-4)]
……
F(3)-r*F(2)=s*[F(2)-r*F(1)]

n-2式相乘:
F(n)-r*F(n-1)=[s^(n-2)]*[F(2)-r*F(1)]
∵s=1-rF(1)=F(2)=1
式化简:
F(n)=s^(n-1)+r*F(n-1)


F(n)=s^(n-1)+r*F(n-1)
= s^(n-1) + r*s^(n-2) + r^2*F(n-2)
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) + r^3*F(n-3)
……
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1)*F(1)
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1)
(s^(n-1)首项、r^(n-1)末项、r/s公差等比数列各项)
=[s^(n-1)-r^(n-1)*r/s]/(1-r/s)
=(s^n - r^n)/(s-r)

r+s=1, -rs=1解 s=(1+√5)/2, r=(1-√5)/2
则F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}
全部回答
  • 1楼网友:痴妹与他
  • 2021-04-04 12:00
斐波那契数列:1,1,2,3,5,8,13,21…… 如果设f(n)为该数列的第n项(n∈n+)。那么这句话可以写成如下形式: f(1)=f(2)=1,f(n)=f(n-1)+f(n-2) (n≥3) 显然这是一个线性递推数列。 通项公式的推导方法一:利用特征方程 线性递推数列的特征方程为: x^2=x+1 解得 x1=(1+√5)/2, x2=(1-√5)/2. 则f(n)=c1*x1^n + c2*x2^n ∵f(1)=f(2)=1 ∴c1*x1 + c2*x2 c1*x1^2 + c2*x2^2 解得c1=1/√5,c2=-1/√5 ∴f(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}【√5表示根号5】 通项公式的推导方法二:普通方法 设常数r,s 使得f(n)-r*f(n-1)=s*[f(n-1)-r*f(n-2)] 则r+s=1, -rs=1 n≥3时,有 f(n)-r*f(n-1)=s*[f(n-1)-r*f(n-2)] f(n-1)-r*f(n-2)=s*[f(n-2)-r*f(n-3)] f(n-2)-r*f(n-3)=s*[f(n-3)-r*f(n-4)] …… f(3)-r*f(2)=s*[f(2)-r*f(1)] 将以上n-2个式子相乘,得: f(n)-r*f(n-1)=[s^(n-2)]*[f(2)-r*f(1)] ∵s=1-r,f(1)=f(2)=1 上式可化简得: f(n)=s^(n-1)+r*f(n-1) 那么: f(n)=s^(n-1)+r*f(n-1) = s^(n-1) + r*s^(n-2) + r^2*f(n-2) = s^(n-1) + r*s^(n-2) + r^2*s^(n-3) + r^3*f(n-3) …… = s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1)*f(1) = s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1) (这是一个以s^(n-1)为首项、以r^(n-1)为末项、r/s为公差的等比数列的各项的和) =[s^(n-1)-r^(n-1)*r/s]/(1-r/s) =(s^n - r^n)/(s-r) r+s=1, -rs=1的一解为 s=(1+√5)/2, r=(1-√5)/2 则f(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯