- 在线时间
- 13 小时
- 最后登录
- 2013-12-8
- 注册时间
- 2010-5-13
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 399 点
- 威望
- 11 点
- 阅读权限
- 30
- 积分
- 282
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 97
- 主题
- 45
- 精华
- 0
- 分享
- 0
- 好友
- 1
升级   91% TA的每日心情 | 难过 2012-8-27 18:22 |
|---|
签到天数: 1 天 [LV.1]初来乍到
 |
以Fibonacci递归程序为例进行比较。- X& X' K8 I+ ?) X) [7 P+ T! L6 ~
' ?7 K! i3 h, z/ Y( d
Matlab 2009a的Fibonacci函数定义:- function k=fib(n)
6 i8 u4 A% C0 i4 G j - if n == 0
c& ~8 G6 |8 Y! b& i8 ~ - k=0;
8 \2 l# z& V# `7 _3 y4 e - return;8 ^& g: C\" H. w% t1 M0 A2 i( h+ n
- else if n == 15 S( G! Q+ i; X
- k=1;
$ F+ [: }) v& @+ c - return;
& d& T; |, J\" S - else
6 ?, Z: M( B1 K! p- N - k=fib(n - 1) + fib(n - 2);
2 n9 c8 H; s4 q6 j0 X0 A! [ - return;: p1 ~7 N L! `1 J0 l
- end
- {# U; t3 @# z* ]' m) h - end
复制代码 运行结果:- tic;
5 p4 v9 T2 }6 J4 ] - fib(30)
6 q4 q$ ~# q0 K4 N/ X$ Q3 T - toc9 l9 Y+ v1 C3 I M
- 6 A2 d7 e8 S; y; k! t
- ans =4 @5 E5 k) a) K# t' O
- 8320408 f' d% M2 }2 m$ W- \7 @3 C* M, b
! Z3 d' b+ ^% \) }+ Q+ F- Elapsed time is 26.315245 seconds.
复制代码 ===============0 k8 t7 A1 }0 S, L- k; ?% ?2 H
F3 t3 ?. F# _+ t3 V8 m8 ^
Forcal 9(OpenFC演示)的Fibonacci函数及代码:- SetRealStackMax(1000);
& M3 u2 k( w+ q! l y - F(n)= which{
& r, ^3 z8 X5 @: ]; y - n == 0,
6 l: E4 i; \- V# ~7 U - return(0),
; A* i& C; d; c' b - n == 1,$ W* [$ X* r5 z4 @
- return(1),
6 l; x9 w# P& e - return [F(n - 1) + F(n - 2)]* i. [7 O3 f8 E8 f8 l; n
- };; k: x5 g\" W( ?\" A( S2 u% d0 T
- mvar:+ G' }4 r/ x/ O* M
- t=sys::clock(),( p+ F9 V3 z. P& W
- F(30);/ `, M! j, i4 t, z
- [sys::clock()-t]/1000;
复制代码 结果:
- E6 {4 e3 t* d' ?* ]0 F832040.5 }2 i( ~, \# h- a2 p' h
0.391 秒5 i2 K% z7 [" t8 k
. b3 Q& c& {/ h) I/ q* O9 q二者效率相差数十倍。 |
zan
|