- 在线时间
- 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递归程序为例进行比较。% D9 ]3 {) I1 X J/ Y
+ k4 _ R5 ^" i" BMatlab 2009a的Fibonacci函数定义:- function k=fib(n)
) _% F) v' I% A5 r! h - if n == 0
$ m3 G, T0 Q- |\" z8 d& F\" H5 ? - k=0;9 W+ a! D# |9 x. H/ s) Z9 y
- return;6 u7 D& x& [5 n
- else if n == 1' L\" q0 Z1 H, Z; z; ~% \% ~
- k=1;# B: m5 a' S3 K4 {! ` h\" f# H
- return;% D9 F- q' @' u4 }, f$ \
- else
/ \) c9 i6 F& a% }4 L) w/ X - k=fib(n - 1) + fib(n - 2);
2 f: Z2 `) A& X2 F - return;
! B\" z9 P* J2 y# k/ y% q) I4 R& C6 K - end: s, q+ p9 o5 ^/ t. B
- end
复制代码 运行结果:- tic;
6 d0 ~, q3 [( _% h4 ?2 ~# n% J - fib(30)
, h+ a6 }- e: k c6 d/ w5 B - toc
$ `' O+ q, f% x# n* d) k& c\" a2 \ - . }* _0 ]# q+ P7 ?# ^
- ans =
8 a* ~/ W\" k) g6 H/ a - 832040
) M6 O8 H4 W8 z! m9 f% e
- Z7 _* p2 i% i\" k- Elapsed time is 26.315245 seconds.
复制代码 ===============
7 Q, Z4 f, t- {) ^6 B6 y, n9 M1 s* I5 d& i$ m; r7 x
Forcal 9(OpenFC演示)的Fibonacci函数及代码:- SetRealStackMax(1000);
6 @# E+ J+ c' {7 C5 \ - F(n)= which{0 {' R/ a4 C# \! Q; V, e% B
- n == 0,
/ M+ \- d- q\" @$ _ - return(0),4 x, ]3 Y\" A+ r# j
- n == 1,5 [& x& C# b5 z4 s* z; L
- return(1),
1 C+ z. J' H! H' l - return [F(n - 1) + F(n - 2)]
, u0 C- W. ?7 {) d: _ - };
1 V\" U% R/ ?' u' X5 R& A4 C/ w - mvar:
* l) Y- g2 _( z - t=sys::clock(),! O7 f# s+ j+ g
- F(30);4 P3 g- D\" k! R2 k
- [sys::clock()-t]/1000;
复制代码 结果:- k( j. } G& x1 R3 C) g
832040." Y/ w" V) c* v% z
0.391 秒' N! ~: a0 }5 p. i, k+ [# u
h# [4 f: n$ t二者效率相差数十倍。 |
zan
|