- 在线时间
- 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递归程序为例进行比较。
9 J5 ?/ q) ]8 _+ D! n* D; _" _) |6 [8 g+ k' `! P7 {; V1 t8 t/ p
Matlab 2009a的Fibonacci函数定义:- function k=fib(n)# d% I/ Q& j1 I1 p
- if n == 0! B7 [' t5 v% u$ N, y
- k=0;
/ T! P( W\" Q0 g3 f8 I2 D( n I - return;
0 Z8 [\" }) r r5 f) @ - else if n == 1& \* a8 U/ H! `2 T
- k=1;8 q# U0 |4 u8 J\" L4 B% M) S
- return;
& D4 D& P( b8 X1 d+ B. o8 {) p - else9 ~8 ]* o7 n3 C3 O
- k=fib(n - 1) + fib(n - 2);( [7 ]) f# o- \. z\" @# R
- return;
8 i4 q& m- ^) z$ {1 U; l( V+ ^ - end& A1 S. e1 |, w2 T3 U: m( b
- end
复制代码 运行结果:- tic;\" V% H, R$ E# X9 \& T
- fib(30)6 z, Y3 ~0 \- b$ E/ ^
- toc
* z; t% a3 H! {! |3 ?) ?% ~
9 t# e& u& m0 L\" }7 k; B. S L- ans =1 M0 G: }( f v' Y) g! u9 c+ {
- 8320404 l1 O; u7 O4 w, T: r9 j
- ' b7 p& k( N\" ~/ O
- Elapsed time is 26.315245 seconds.
复制代码 ===============* A9 w& {' t/ ]& v1 h) w
: c$ ?! r0 l! Y9 |
Forcal 9(OpenFC演示)的Fibonacci函数及代码:- SetRealStackMax(1000);& f+ u/ F\" @\" y; s' W
- F(n)= which{
\" ^ O7 G+ `( [ - n == 0,
& M; E$ A! c6 w) J' z g\" R\" J - return(0),
; F3 o$ a( B2 ? - n == 1,
6 T9 Q$ T* m6 S) g6 C1 H - return(1),
Z6 u8 k. p1 P - return [F(n - 1) + F(n - 2)]
2 h' `2 G3 E9 o* M( b - };5 o$ l! J% e1 f4 K
- mvar:
1 ?$ w$ F4 B3 W8 D - t=sys::clock(),
\" f* E& L\" D0 P - F(30);
: L) \7 o3 H' w/ O' r& _' J - [sys::clock()-t]/1000;
复制代码 结果:
! }6 y! b- Q" O; q: u. t; Z: U7 T' g832040.
/ ]; s( R4 M' j4 Y& b6 L0.391 秒
& k2 x# t1 G2 x$ D; d) U: j1 O$ V8 \3 q3 Z7 `
二者效率相差数十倍。 |
zan
|