- 在线时间
- 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递归程序为例进行比较。
. _) P3 P' x+ J" a* g( {' ^; W3 T6 {2 c( f) D; w
Matlab 2009a的Fibonacci函数定义:- function k=fib(n)( H0 I; {# D9 x% G) Y* i3 m
- if n == 0# ^$ X; h k) V. k9 f+ K
- k=0;/ v6 t4 W- I* E' c! a& `: e) f
- return;% a# g8 p; y/ l3 X
- else if n == 1
( \7 g2 A* Z, u2 o% j - k=1;1 }# Z9 A+ P* r; j1 T+ V
- return;/ v: F7 l7 E: B\" e V2 ]
- else* b9 T$ o; }9 w1 ~; q! q
- k=fib(n - 1) + fib(n - 2);) M8 t3 J2 w4 u- p2 l8 I+ i
- return;
; e2 X9 j; e6 L% k - end- C; V0 h% U3 c
- end
复制代码 运行结果:- tic;4 J4 j9 T& K4 J8 r+ I) }
- fib(30)6 {1 Z, j- s: W T$ T0 B9 z
- toc
5 p7 e8 R: Q\" E: A
# M! z, h6 v\" B: M9 J& N- ans =
5 S2 {% V: |- ]# i1 Q, r5 V) Z - 832040# |0 {' ^9 b$ N- n7 u
- % z( b; Q9 [& t1 f+ z4 p. w
- Elapsed time is 26.315245 seconds.
复制代码 ===============6 ^1 X5 a$ {+ H1 I
4 N# ]# w( }+ X. @4 t) b2 k# f
Forcal 9(OpenFC演示)的Fibonacci函数及代码:- SetRealStackMax(1000);
1 |$ R, G9 Z& } - F(n)= which{
. k) B: V& }# C1 d6 z: _7 I( u, p - n == 0,
d2 X: t( o2 `# { - return(0),
\" E4 n; A: W$ v5 ^ - n == 1,
7 g3 m* o) ]$ {0 { j - return(1),! o- V; L: i6 Q3 V- W- _
- return [F(n - 1) + F(n - 2)]
( u I! e7 T8 @. Z2 Q - };7 W8 ?9 p7 {9 g. O
- mvar:
3 ?2 E. Y/ w) { - t=sys::clock(),
5 C0 |+ N: n, S+ l, { - F(30); _9 w3 t- S3 j0 c6 f
- [sys::clock()-t]/1000;
复制代码 结果:
) S4 Z3 L9 ^ V3 U! H: R% @( p832040.
, I1 V' K: I/ e0.391 秒
+ ?- R1 l" g$ s8 N q: }
; L9 N/ o$ e6 w5 ~二者效率相差数十倍。 |
zan
|