通过斐波那契数列查看Python和R的计算速度
来源:互联网 发布:合肥八度网络怎么样 编辑:程序博客网 时间:2024/06/08 14:38
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
以下,我们通过Python和R来处理斐波那契数列(Fibonacci sequence),从而查看两种主流语言的计算速度(8G ThinkPad T470,i5 7代,R已经用memory.limit把内存扩大到最大)。
首先是python代码:
import timedef fib(n):#斐波那契公式 if n==1 or n==0: return 1 else: return fib(n-2)+fib(n-1) def spend_times(n):#计算时间的公式 start = time.time() [fib(i) for i in range(n)] end = time.time() return 'cost:{}'.format(end-start)print spend_times(10)print spend_times(20)print spend_times(30)print spend_times(40)print spend_times(50)
以下是R代码:
fib <- function(n){ if(n == 1||n == 0){ return(1) } else { return(fib(n-2)+fib(n-1)) } }spend_times <- function(n){ start_time = Sys.time() for(i in 1:n){ fib(i-1) } end_time = Sys.time() return(end_time-start_time)}print(spend_times(10))print(spend_times(20))print(spend_times(30))print(spend_times(40))
最后是python和R的运算时间(秒):
n
python
R
10
0.00
0.00
20
0.00
0.11
30
0.56
11.20
40
79.27
等了好久都没出来,我给停掉了
该算法非常耗费时间,主要是因为算法没有进行优化,所以有大量的重复计算,比如F(10)=F(9)+F(8),F(9)=F(8)+F(7),F(8),重复量非常大,所以也正是验证两种主流语言计算速度的好方法。
从上面的结果可以看出,python在处理运算量非常大的算法的时候,效率要远远的高于R。
阅读全文
0 0
- 通过斐波那契数列查看Python和R的计算速度
- Python计算斐波那契数列
- Python计算斐波那契数列
- 斐波那契数列的计算
- 斐波那契数列的计算
- 斐波那契数列数列计算
- R语言:斐波那契数列
- 矩阵在计算斐波那契数列的运用
- 动态规划入门-斐波那契数列的计算
- 对数时间计算斐波那契数列的方法
- Java计算斐波那契数列
- 1042: 计算斐波那契数列
- 计算斐波那契数列
- 计算斐波那契数列
- 斐波那契数列计算
- 计算斐波那契数列
- 计算斐波那契数列
- 为什么用 递归 计算“阶乘”和“斐波那契数列”是不合适的?
- isset 判断变量是否存在的时候对于0是生效的
- linux cd与ls命令用法
- (OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 : AH00072: mak e_sock: could not bind to address [::]:443
- 用IDEA生成webService客户端时抛出Exception in thread "main" java.lang.AssertionError: org.xml.sax.SAXParseExce
- 设计模式--适配器模式
- 通过斐波那契数列查看Python和R的计算速度
- Github使用教程(二)------ Github客户端使用方法
- 微软加入热门开源PaaS项目
- Springmvc 定时任务执行两次
- 2017CCSP第二题
- 【JavaSE_学习笔记】System类与Math类
- androidStudio开发过程中,手机页面提示出Permission denied错误的解决办法
- Windows10中Virtualbox没办法选择和安装64位的Linux系统
- SSH案例--入门级