- 在线时间
- 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递归程序为例进行比较。* `7 x+ N" w# d
+ P, }0 @+ K3 V' o6 ?Matlab 2009a的Fibonacci函数定义:- function k=fib(n)5 N% G+ o7 Y, h
- if n == 0
1 ^; w. L/ f4 x2 i( P6 x - k=0;; }. n, M3 L! ^
- return;
x0 M- W; F V4 N - else if n == 1; n. F4 E! |( N\" j9 U+ X
- k=1;- x% z. Y; |0 N* b, B) J$ O
- return;
' m x9 F, w1 [ - else5 \' C& u8 J3 S# g. l5 @
- k=fib(n - 1) + fib(n - 2);( D0 I3 [6 _! B6 E: I
- return;
/ O* P8 `+ h# L - end' H. m( t' |\" D8 |6 U) T
- end
复制代码 运行结果:- tic;
4 I* `4 a% t+ u: L0 H - fib(30)
9 Z\" p3 b/ j7 g\" A% x# S8 J' p - toc3 Q, q5 U/ ~- Y$ s. n- s1 _7 H3 c
- $ w8 G$ G4 {* W% q; z' o6 G- P' K2 k
- ans =
- p8 E; \7 ^* D0 K/ y - 8320404 _7 m( R6 ~/ d
8 Z; q+ v( n8 E- Elapsed time is 26.315245 seconds.
复制代码 =============== w/ V! S: q( y1 s
. {2 l, g9 c" A
Forcal 9(OpenFC演示)的Fibonacci函数及代码:- SetRealStackMax(1000);
( A& |1 | N8 j8 P$ X! J5 E - F(n)= which{' ~4 K6 H\" V; u1 E
- n == 0,& v9 e) ~' [0 J& }/ ~\" m% Y
- return(0),
9 [) Q, v+ d! d7 g- [ - n == 1,
2 A& R0 m6 G4 P: M! C+ n3 a7 K - return(1),
' a( v: j2 i& z) B! \ - return [F(n - 1) + F(n - 2)]/ ]' Y, r K5 I; h: x5 g. Q
- };
% ~3 s/ ]4 H) v - mvar:5 `\" `& Y7 ^% L
- t=sys::clock(),8 u7 Q' ?% L: J( K6 r
- F(30);
$ I- j) Z/ u9 R- g, f% t\" R- ] - [sys::clock()-t]/1000;
复制代码 结果:; D6 U9 v e2 K
832040.
, V: r$ M+ `+ c: z1 Q0.391 秒 J* o5 B" t$ S# R7 h: k
Z1 ^7 S- L0 x; k
二者效率相差数十倍。 |
zan
|