FIBONACCI-顺推
来源:互联网 发布:九次方大数据上市2016 编辑:程序博客网 时间:2024/05/17 05:15
公元1202年欧洲数学家伦纳德·斐波那契在他所著的《珠算的书》(Liber Abbaci)中有这样一道习题:假定每对兔子每个月生出一对兔子。新生的兔子一个月后有了生育能力,再过一个月又生出一对兔子。那么买一对新生的兔子回来,一年后有多少对兔子?
显然,第一个月有一对,第二个月还是一对,第三个月有两对,第四个月有三对,第五个月有五对……容易推得,某月的兔子数正好是前两个月兔子数之和。如果用F(n)表示第n个月的兔子数,则当n>2时有:
F(n)=F(n-1)+F(n-2) n≥3
F(1)=F(2)=1
若定义F(0)=1,则可以写成:
F(n)=F(n-1)+F(n-2)n≥2
F(0)=1,F(1)=1
这个数列称为斐波那契数列。上面的表达式是该数列的递归定义,其终止条件是n=1和n=1,递归形式是F(n)=F(n-1)+F(n-2)。即当n≥2时,函数F(n)用它本身在自变量较小的两个点处的值来(递归)表示,这个递归表示向着终止条件(n=0,n=1)变化,所以这个问题可以递归求解。可以写一个VB的函数过程来计算第n个斐波那契数。
当n=5时,fib(5)的计算过程如下:
fib(5)
=fib(4) + fib(3)
=(fib(3) + fib(2)) + (fib(2) + fib(1))
=((fib(2) + fib(1)) + (fib(1) + fib(0))) +((fib(1) + fib(0)) + fib(1))
=(((fib(1) + fib(0)) + fib(1)) + (fib(1) +fib(0))) + ((fib(1) + fib(0)) + fib(1))
=1+0+1+0+1+0+0+1=5
以下是用顺推法计算FIBONACCI数列
'//程序用以计算斐波那契函数Public arrOut()Sub Fibonacci()Dim n As Integer, Result As IntegerWith Sheet2n = .Cells(2, 2)ReDim arrOut(0 To n + 1, 1 To 2)'输出Result = Fibo(n) '求最值.Cells(3, 2) = Result.Cells(6, 1).Resize(UBound(arrOut), UBound(arrOut, 2)) = arrOutEnd WithEnd Sub'Main ProgramFunction Fibo(n)If n = 0 Then Fibo = 0ElseIf n = 1 Then Fibo = 1Else Fibo = Fibo(n - 2) + Fibo(n - 1)End If arrOut(n, 1) = n: arrOut(n, 2) = FiboEnd Function
'//程序用以计算斐波那契函数Public arrOut()Sub Fibonacci()Dim n As Integer, Result As IntegerWith Sheet2n = .Cells(2, 2)ReDim arrOut(0 To n + 1, 1 To 2)'输出Result = Fibo(n) '求最值.Cells(3, 2) = Result.Cells(6, 1).Resize(UBound(arrOut), UBound(arrOut, 2)) = arrOutEnd WithEnd Sub'Main ProgramFunction Fibo(n)If n = 0 Then Fibo = 0ElseIf n = 1 Then Fibo = 1Else Fibo = Fibo(n - 2) + Fibo(n - 1)End If arrOut(n, 1) = n: arrOut(n, 2) = FiboEnd Function
- FIBONACCI-顺推
- python fibonacci 递推
- HDU 3117 Fibonacci Numbers(Fibonacci矩阵加速递推+公式)
- hdu 1708 Fibonacci String (递推)
- hdu1588---Gauss Fibonacci(矩阵,线性递推)
- hihocoder#1239 : Fibonacci(递推DP)
- 【POJ】3070 Fibonacci 递推+矩阵优化
- codeforces 126D Fibonacci Sums 递推 DP
- hdu 1021 Fibonacci Again 递推数列模周期
- poj 3070 Fibonacci(矩阵优化递推入门)
- Fibonacci的两种实现方式:递归和递推
- HDU 1250 Hat's Fibonacci(递推+大数加法)
- hdu 2855 Fibonacci Check-up【递推+矩阵快速幂】
- [HDU1588]Gauss Fibonacci(递推+矩阵快速幂)
- 2017年网易互联网内推笔试题-Fibonacci数列
- 网易2017内推笔试2:Fibonacci数列 [python]
- Fibonacci
- fibonacci
- Android 手势(Gesture)
- jqgrid前台数据显示问题原因和解决方案
- 信道仿真器
- Objective-C中NSString对象的retainCount
- Deep Learning(深度学习)学习笔记整理系列之(五)
- FIBONACCI-顺推
- 第七章 高级排序
- Deep Learning(深度学习)学习笔记整理系列之(六)
- AFS结束使命新产品FMS上市
- view.setTag()和view.getTag()
- Deep Learning(深度学习)学习笔记整理系列之(七)
- 怎样成长为一个优秀的web前端工程师
- Android dumpsys 命令解析
- Java Web 论如何在 Listener获取Spring Bean