极限测试之Matlab与Forcal的递归函数调用效率
以Fibonacci递归程序为例进行比较。Matlab 2009a的Fibonacci函数定义:function k=fib(n)
if n == 0
k=0;
return;
else if n == 1
k=1;
return;
else
k=fib(n - 1) + fib(n - 2);
return;
end
end运行结果:tic;
fib(30)
toc
ans =
832040
Elapsed time is 26.315245 seconds.===============
Forcal 9(OpenFC演示)的Fibonacci函数及代码:SetRealStackMax(1000);
F(n)= which{
n == 0,
return(0),
n == 1,
return(1),
return
};
mvar:
t=sys::clock(),
F(30);
/1000;结果:
832040.
0.391 秒
二者效率相差数十倍。 以后真的注意了。。。 楼主真好
页:
[1]