斐波那契(fibonacci)数列与黄金分割比以及矩阵形式推导
原文地址:https://blog.csdn.net/lanchunhui/article/details/50569311 (如有侵权请联系删除)
数学上,斐波那契数列以递归的形式进行定义:
注意,递归的形式实现较为简单明了,当然在编程实践时,并不推荐递归的实现方式,因为存在大量的重复计算,斐波那契的优化实现不是本文的重点,如有兴趣,请参阅 每周一刷——从斐波那契数列到动态规划,本文重点探讨菲波那切数列与黄金分割比的关系。
维基百科中说菲波那切数列又叫黄金分割数列,这无疑是在告诉我们我们可以通过黄金分割的方式((√5−1)/2)生成出来一个菲波那切数列。
下面我们简单验证我们的判断:
def fib(n):return n if n <= 1 else fib(n-1)+fib(n-2)
N = 20
print([fib(n) for n in range(N)])[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181]
int(55*(1+.618)+.5) == 89
int(2584*(1+.618)+.5) == 4181
indeed,诚哉斯言。
我们接着做如下的仿真:
def gold_fib(n):return n if n <=2 else int(gold_fib(n-1)*(1+.618))
print([gold_fib(n) for n in range(N)])[0, 1, 2, 3, 4, 6, 9, 14, 22, 35, 56, 90, 145, 234, 378, 611, 988, 1598, 2585, 4182]# 已经非常接近了,
通过初等代数方法,我们也可得出此解析解的形式,具体请参考 斐波那契数列;
def matrix_fib(n):return int(1/sqrt(5)*(((1+sqrt(5))/2)**n-((1-sqrt(5))/2)**n))print([matrix_fib(n) for n in range(N)])[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181] # 一模一样,不差分毫
斐波那契(fibonacci)数列与黄金分割比以及矩阵形式推导相关推荐
- 斐波那契数列在计算机的应用,斐波那契(Fibonacci)数列的几种计算机解法
题目:斐波那契数列,又称黄金分割数列(F(n+1)/F(n)的极限是1:1.618,即黄金分割率),指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--.在数学上,斐波纳契数列以如下 ...
- 斐波那契(Fibonacci)数列计算器设计
资源下载地址:https://download.csdn.net/download/sheziqiong/85734538 资源下载地址:https://download.csdn.net/downl ...
- 计算机数列类型,斐波那契(Fibonacci)数列的几种计算机解法
题目:斐波那契数列,又称黄金分割数列(F(n+1)/F(n)的极限是1:1.618,即黄金分割率),指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--.在数学上,斐波纳契数列以如下 ...
- 递归生成斐波那契Fibonacci数列——Python
记录一下学习过程 递归生成斐波那契额数列的第n项 定义一个函数Fibonacci(n),它可以生成数列的第n个数,先不考虑是怎么生成的.斐波那契数列的每一项都是前两项的和,因此第 n 项可以由 n-1 ...
- 递归函数就兔子数C语言,【C语言】求斐波那契(Fibonacci)数列通项(递归法、非递归法)...
意大利的数学家列昂那多·斐波那契在1202年研究兔子产崽问题时发现了此数列.设一对大兔子每月生一对小兔子,每对新生兔在出生一个月后又下崽,假若兔子都不死亡.问:一对兔子,一年能繁殖成多少对兔子?题中本 ...
- 编程之美-斐波那契(Fibonacci)数列方法整理
[试题描述] 方法一:传统解法,有重复计算 方法二:地推关系式的优化,时间复杂度O(n),空间复杂度也是O(n) 方法三:时间复杂度O(1) 方法四:分治策略,时间复杂度O(logn)
- 斐波那契 (Fibonacci)数列
尾递归会将本次方法的结果计算出来,直接传递给下个方法.效率很快. 一般的递归,在本次方法结果还没出来的时候,就调用了下次的递归, 而程序就要将部分的结果保存在内存中,直到后面的方法结束,再返回来计算. ...
- [CS101] 转载:浅议Fibonacci(斐波纳契)数列求解
原文转载自林健随笔的"浅议Fibonacci(斐波纳契)数列求解" Fibonacci 数列 描述了动物繁殖数量.植物花序变化等自然规律.作为一个经典的数学问题,Fibonacci ...
- php 斐多纳契数列,斐波那契神奇数列与波浪理论的完美重合(摘选)
斐波那契神奇数列与波浪理论的完美重合(摘选) 一.斐波那契数列为波浪理论的结构基础 艾略特,波浪理论的开山祖师,在1934年公开发表波浪理论,指出股市走势依据一定的模式发展,涨落之间,各种波浪有节奏地 ...
- java兔子,Java斐波那契兔子数列
本篇文章帮大家学习java斐波那契兔子数列,包含了Java斐波那契兔子数列使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. 斐波那契数列指的是这样一个数列 0, 1, 1, ...
最新文章
- eclipse从svn检出项目
- 实现计算机界“大满贯”,芮勇博士再获技术成就大奖
- Python学习之==面向对象编程(一)
- 关于Async与Await的FAQ
- html 启动bat脚本,Windows开机自启动bat脚本设置方法
- Fast R-CNN论文详解
- leetcode-344-反转字符串
- Oracle 游标的各种写法
- 【Java HashMap】常用函数的使用
- python3 线程池监控线程是否停止工作_Python线程池——个人总结,如果你不喜欢就不要喷,勿...
- spring注册bean
- mysql服务重启后不见了_太狗血!翔安已婚男出轨KTV服务员,致其怀孕后避而不见!情人上门讨要说法后原配妻子也......
- iOS之Masonry代码解析
- Origin学习中文论坛及自带的learning center
- 用Radeon RAMDisk在Windows 10中创建关机或重启不消失的内存虚拟盘
- 一分钟入门typescript
- [线性代数]向量2-范数三角不等式证明
- 浅谈机器学习之深度学习
- activiti:initiator详解
- 后端人眼中的Vue(五)