- 在线时间
- 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 C$ t3 U" X ^2 |2 |: j+ X/ I6 V5 l$ ~, f2 T8 H% o7 P
Matlab 2009a的Fibonacci函数定义:- function k=fib(n)2 D: [* ]* f( \* g
- if n == 0
; s* J& z2 [; q2 _ - k=0;( _' A4 t\" j! t/ r
- return;
# d& X# j8 [% o- {8 d% u( x& M - else if n == 1! S0 M# u\" [) f! Y: n
- k=1;
+ C2 I! t% F\" t$ u# h - return;
8 w1 X' J! d5 J( |; F - else, E0 ]' [* O6 k% U2 Z( U
- k=fib(n - 1) + fib(n - 2);: v0 V$ R, R& G+ ~. ]
- return;; e, I7 [2 \4 M1 W
- end! k3 _6 w/ @8 P' ^/ g# P# C0 j\" W' p
- end
复制代码 运行结果:- tic;$ F4 J. d, M1 P5 _/ @
- fib(30)
2 o1 E1 u- S) }\" S* E7 m* W - toc* H5 v3 Y& T6 N4 ]\" o& O5 A
& d; y4 C, d8 k* T5 G/ S3 b- ans =! H+ u. y. K- @\" J% p2 j
- 832040
Z; c& e6 u. B - 9 X# n8 ?1 F4 t# C% }
- Elapsed time is 26.315245 seconds.
复制代码 ===============
* ], S4 b2 F# W& A, _0 s/ F; \, q' i$ r8 g \$ Q. v; ^
Forcal 9(OpenFC演示)的Fibonacci函数及代码:- SetRealStackMax(1000);7 ]' C) `\" ^! R, j6 z3 [7 c+ F+ R
- F(n)= which{
# k* ?/ U& {\" E4 T$ I/ E - n == 0,
5 U% R/ \5 v7 k - return(0),
8 ^0 k\" G- U v& @ - n == 1,
6 k1 s; v; P; O+ g+ }' I& A - return(1),+ w2 @0 d) w! J( r* \3 u: f
- return [F(n - 1) + F(n - 2)]# _; h- F6 H4 M( |( i
- };
& N) _& n3 i\" d, i% k) R+ }6 C; L - mvar:
$ h\" D* V* K6 K5 R- h2 d+ c - t=sys::clock(),
6 D( W4 x3 t2 v }, i - F(30);
5 A T7 X9 O4 ~\" C. R5 G5 D - [sys::clock()-t]/1000;
复制代码 结果:
3 d) R; `2 T4 }, p8 L4 j) O* U832040./ O9 ?' {5 g I; ^+ W- P
0.391 秒
' C3 j/ ~7 f$ \; g! `
/ W; b4 ~$ M+ u: ?$ h% R% t二者效率相差数十倍。 |
zan
|