- 在线时间
- 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递归程序为例进行比较。, B: \4 j& N7 q, q
& l2 D" N; i5 ?* ]# T( M7 GMatlab 2009a的Fibonacci函数定义:- function k=fib(n)
/ M0 B, o. v- c: ]6 }& @# E2 v# h7 s - if n == 0
. z4 m+ X. ?. H$ i7 j& K8 } a - k=0;
8 E1 ^5 S U, k/ b4 Q2 C* s - return;2 n$ `/ R' ^. {
- else if n == 1
5 H. G' X7 {) X% @% M3 e - k=1;* K, a' \9 z: C: {\" ^
- return;
& n- ]\" y5 y5 g! } - else* k) ] n. O' j+ p/ j/ L- T\" k3 p9 l
- k=fib(n - 1) + fib(n - 2);
P U# E% m1 R+ O# x - return;
4 D, E \$ i2 t4 M% }2 R9 Z$ ` - end
8 Z! K) G5 b3 F4 Y6 C) p3 | - end
复制代码 运行结果:- tic;4 j2 s2 Q; c. }8 l& a
- fib(30)
5 d7 d' ?/ s2 p5 q2 a9 ]* R - toc$ [- X# r# T7 }; b
( _\" q/ H& `: Z0 D9 u- ans =
& L/ J& I3 P+ [( e& S, \ H - 832040. y! j H7 ]- e0 E2 D$ m! {' y
; w5 Z; S1 k$ @) T3 M& p- Elapsed time is 26.315245 seconds.
复制代码 ===============1 L3 e' J) j" K/ i) P
/ M! ^7 Q( F2 a% _; ^' fForcal 9(OpenFC演示)的Fibonacci函数及代码:- SetRealStackMax(1000);
- s3 g O0 @) B( j2 N/ R3 y - F(n)= which{
6 O/ v0 y% _) D! S7 f: h; V - n == 0,
9 U. j8 ]; \* l9 A s( ^+ t - return(0),
+ C1 P\" I0 w2 t3 d3 i1 [* D/ a - n == 1,
5 q; f& e5 K% |6 q8 f - return(1),
2 @4 j0 m6 V5 n. e - return [F(n - 1) + F(n - 2)]% G2 R2 ^3 X9 M# p5 h
- };) |! F4 C5 Q m# J
- mvar:) t$ b! S f3 H. X0 n. z5 h$ P3 C! O
- t=sys::clock(),
; c5 l\" a( |: X0 b& b - F(30); s+ n4 q4 u0 j. ~
- [sys::clock()-t]/1000;
复制代码 结果:
7 s5 R4 @* j1 r832040.
" T2 R( U# P+ L1 D& C0.391 秒
0 n& ?, K' W8 X/ h: F
( r+ r& R! H( B1 k: E$ |; Q# y二者效率相差数十倍。 |
zan
|