- 在线时间
- 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递归程序为例进行比较。
. F6 }9 s/ ?( C6 t Y7 u" j
8 f5 E- }1 d% l' ^5 TMatlab 2009a的Fibonacci函数定义:- function k=fib(n)
; W6 F6 {& g: Y$ n( p+ h3 T - if n == 0
) E1 P) `. l: d) ?& } - k=0;
* i& `0 f6 C8 P( D9 F* }) n6 j! z - return;+ `7 J4 I H6 J. ~5 B8 W
- else if n == 15 a& w\" C8 h7 m$ a# l\" v$ }
- k=1;$ i/ @. c6 O9 [
- return;' s2 j0 |) `5 ]& L+ ~9 q4 E
- else# L& J- k( K5 |
- k=fib(n - 1) + fib(n - 2);
3 e o! v# H9 f% _/ S! r! \ - return;. w\" B. R6 f) |' \
- end
. g% D x' r( z% _* \& H% n& j - end
复制代码 运行结果:- tic;
* i g H) \, O5 B3 G - fib(30)* \5 v/ V: ` r/ f& C% ]9 c
- toc1 h2 H+ W+ C$ M7 M9 M: x
( r% ^0 A' c: |+ j5 }! \( D- ans =
5 |% ^: z/ N6 `$ W3 M( S3 ?8 p, t - 8320404 [: O$ @( ^0 `; w7 Q G( e. b
- ! h8 A( \' I+ v* r( b: V8 [) \/ n
- Elapsed time is 26.315245 seconds.
复制代码 ===============7 e2 _7 H( G z) E* C1 \
. c1 L% p5 }9 i! \1 eForcal 9(OpenFC演示)的Fibonacci函数及代码:- SetRealStackMax(1000);' q\" g. `6 X. u& w Z
- F(n)= which{
0 j% O: [$ W4 d4 Z5 V5 ^ - n == 0,$ [( i' c( h4 h! d7 _1 }) W
- return(0),
8 J\" ]7 I9 c1 o3 a - n == 1,
% {% ]. H& J4 f, c - return(1),
5 w- t& [\" W9 q; Z: ^: f% Y$ c! R0 u - return [F(n - 1) + F(n - 2)]
- S E9 u) M7 s: {) r& } - };
\" A& r9 H' e# ^4 Y: e - mvar:
9 A! K% [! |( C4 O5 L- L. m - t=sys::clock(),3 t4 A. {+ E' O# F. X) M
- F(30);
' ^2 J+ I3 E% d& q - [sys::clock()-t]/1000;
复制代码 结果:7 G! w+ U7 }, \- F( y
832040.
8 L2 U/ C" {' w% [4 _0.391 秒
/ E/ V$ \3 i1 M% \+ w, h/ q1 f
2 e( f3 {# ~. ~- j, p二者效率相差数十倍。 |
zan
|