- 在线时间
- 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递归程序为例进行比较。
1 p( c9 s4 ^6 H; q; t- n4 J6 v+ C" y2 W
Matlab 2009a的Fibonacci函数定义:- function k=fib(n)
6 C4 c: W3 Q' z. {\" ^& f3 V - if n == 0: m; ?- S# c2 H2 [: w! Q8 y
- k=0;- [, E3 M. n6 y
- return;% C/ x( t8 J9 |1 J {. x4 Q5 z
- else if n == 1\" ~$ I b3 O- f; k$ P; \
- k=1;% k4 @0 v# B( y1 P3 J; {5 \% m$ t
- return;7 r$ a. h. k) J
- else
2 S\" I( p+ D$ A, R; o: J - k=fib(n - 1) + fib(n - 2);4 T) C8 f4 r\" t% `2 f5 z
- return;
* v* j+ f: E\" {$ B - end- J& G5 ]# y/ _1 y f0 `
- end
复制代码 运行结果:- tic;- U& q0 i, c% a1 b1 l
- fib(30)) `+ r7 Q% U6 A) J\" U% b
- toc
4 |7 t# H$ u* i* ?1 w0 u% M* i8 }
4 C( g. x8 o+ }; T6 o) R- j- ans =2 Q6 g, @( `. B' l: H
- 832040' \% y$ C' c% d* n, e/ l' a
- * b# {3 R: Q& E$ k
- Elapsed time is 26.315245 seconds.
复制代码 ===============
' Z. g" n* v$ V9 `6 a1 J5 x6 ]9 l1 M9 |! O/ Q
Forcal 9(OpenFC演示)的Fibonacci函数及代码:- SetRealStackMax(1000);# C3 Q) E/ `9 z W
- F(n)= which{
, Y6 @9 d* C' n3 D$ ~0 z - n == 0,! `* X( F; b) p; P: y* _
- return(0),, {- |2 D; f. N\" L |
- n == 1,' N* C# ?( \6 ^0 j
- return(1),
- z9 V, S$ K4 A1 s5 B - return [F(n - 1) + F(n - 2)]; }; A# Q! U8 e9 R7 h\" B6 }, n
- };
4 |9 A' w5 g$ E6 O - mvar:
* s# E; u. H$ s/ E - t=sys::clock(),$ E3 X& O4 C( Q
- F(30);0 \- |% `5 v% i; d: }
- [sys::clock()-t]/1000;
复制代码 结果:/ f% |2 G h, r: |5 z
832040.- Z: y* s. E I$ A( M
0.391 秒8 D' X( S2 r0 @* r7 ~) o
1 H2 m; g' m, |3 e
二者效率相差数十倍。 |
zan
|