- 在线时间
- 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递归程序为例进行比较。
8 J# r) z: O; S; H1 D' y% j& x5 I% w" D5 X9 P
Matlab 2009a的Fibonacci函数定义:- function k=fib(n)
& m/ n/ E$ h2 ] - if n == 0. j: o* N4 H4 u9 \. z5 _6 K
- k=0;2 ^7 p8 }' |8 \' l, J, |6 h7 d
- return;' z2 w# s: S$ {7 M0 }# a% g# `
- else if n == 1
( ]5 \+ c' G# E1 l - k=1;
8 D; G3 ]8 j, J- {! _. I$ W - return;, a5 H/ m$ w\" q u) l
- else
' O- F0 ^2 N' n, ~\" f4 @& d7 d/ F - k=fib(n - 1) + fib(n - 2);6 L* k# H, [- Y% C\" K
- return;
9 s0 \% k w/ A/ f5 M7 U, R1 H; p$ L - end
6 k% b6 O' E- ?4 H& I9 J w3 u* { - end
复制代码 运行结果:- tic;
* L; _3 K# {' G - fib(30)4 h; m9 e6 ^8 \6 g5 \' J. z% x
- toc5 B8 t2 d; k8 j4 \& _
/ y; o* ?6 ?, Z& X( k: ~2 W- ans =
\" ~) H& O! t% L# U: ] - 832040
6 x' d( k+ E5 v - ; c5 [7 S0 P$ H$ R
- Elapsed time is 26.315245 seconds.
复制代码 ===============, [9 h8 q G* K
' O9 }- v t/ ]# \/ R' {* m1 zForcal 9(OpenFC演示)的Fibonacci函数及代码:- SetRealStackMax(1000); n# Q3 g: ]) I3 u3 K
- F(n)= which{% @1 ^0 @( i! z8 z\" y+ H- X4 a0 N, f
- n == 0,
/ ?7 _; k2 m0 ^6 @1 D+ \ - return(0),3 J) V0 p h4 X( y6 {- u
- n == 1,! e' A/ \0 @* u: e3 @) A/ x
- return(1),& o/ O: P6 n, u9 s- W
- return [F(n - 1) + F(n - 2)]
[/ E2 I% l/ U4 O* |' i - };
! Q1 L1 P# K3 `7 I& |( a# H' j - mvar:, G# L3 r3 V: a% e) }
- t=sys::clock(),
\" `8 @, H' _6 a# g - F(30);
& z3 n9 v9 s+ ?, b |+ j) n - [sys::clock()-t]/1000;
复制代码 结果:8 z$ {! x6 A, t, [( H
832040.: K+ O& G. N! y) ]( Q/ J" _
0.391 秒
: t) ^1 H3 A3 ?, L4 p
+ I" C" S4 F2 b1 e/ ]6 J二者效率相差数十倍。 |
zan
|