- 在线时间
- 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递归程序为例进行比较。
) L; O4 X6 p( T3 B7 I* h1 ~# g0 h# d6 x5 R$ w
Matlab 2009a的Fibonacci函数定义:- function k=fib(n)
) _& K) }2 B1 g2 a4 | - if n == 0
! ]& c* i5 w\" u r+ ~ - k=0;; H5 s. ~5 a# G4 ~
- return;
% @, B; ]: p* P, d' j m7 T - else if n == 10 z- x\" @6 n- Q$ \4 C8 h8 s
- k=1;\" D2 X) _1 F; \
- return;
/ B- @( ?8 D% B# V' q8 Z) ]0 C9 H4 c9 t - else1 P3 q& J1 |* \4 o0 [8 N# @
- k=fib(n - 1) + fib(n - 2);/ o/ x W Q1 s# \' V; l
- return;7 J4 Y5 W. F0 `! L9 u! |) j x
- end
- s. N5 Z\" }9 I - end
复制代码 运行结果:- tic;
( y! k\" u# U5 s% | - fib(30)# f b( k2 p0 V7 z Y
- toc! h( g6 w# B/ `6 {! I/ u
- # m9 K. I( |2 d& E
- ans =7 F( \0 s% v7 h2 ^ x\" }) s5 G1 r9 t
- 8320404 \5 u' u3 R* x! F5 G3 @
- 9 t2 T! x- }\" b7 o9 a
- Elapsed time is 26.315245 seconds.
复制代码 ===============! \9 `/ R8 Q" D2 \" u# j
( y) u. d, s8 n* H5 N1 CForcal 9(OpenFC演示)的Fibonacci函数及代码:- SetRealStackMax(1000);
0 T% Y0 g+ i% s6 Q0 C! E, P. n - F(n)= which{8 A6 F% S2 Z) o8 [# |8 u/ d
- n == 0,) }, @6 m( ~$ B* n
- return(0),9 b7 a7 D$ M1 n
- n == 1,
0 q2 w; D( g6 |; c - return(1),
+ P! z8 i2 l7 l6 |# ^ - return [F(n - 1) + F(n - 2)]2 h/ a- g/ C( L: ?
- };
0 M- b/ K* j: P( K( }. I0 C - mvar:! w6 ]4 l H1 O\" t
- t=sys::clock(),
+ T( L* q5 [. ^7 R - F(30);
; G- N# Y! o( t f# Q - [sys::clock()-t]/1000;
复制代码 结果:
! ~. _! P1 D& L832040.3 z& [0 ^2 S& ?; G$ V! x6 J
0.391 秒% q( \ m q" s
* K5 N0 c I& u) ]9 b# V4 M二者效率相差数十倍。 |
zan
|