- 在线时间
- 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递归程序为例进行比较。
* F0 F" s+ ?% u0 P4 ]1 y6 a8 U2 ]5 j, x4 r2 m% o
Matlab 2009a的Fibonacci函数定义:- function k=fib(n)
. A0 ^, P; ?5 ]' s) W: A - if n == 0
q; u. L\" m1 f; W- i, Z' x\" N - k=0;& a b9 A: O\" L' W
- return;
0 O- T! |3 ?2 i, B+ V - else if n == 1
2 e\" V! Y. P& [* t* D, z8 l( Q - k=1;9 t7 d: C+ C0 b$ T/ } |6 h! _3 q
- return;
* Y% w% a+ e& R) c2 R7 g - else5 F6 P+ {! }1 d
- k=fib(n - 1) + fib(n - 2);7 |1 y8 p6 W) D7 g) D) k4 ~* |* H- |
- return;
. r! `1 |! D- M! p; } - end
7 Z x# k4 l3 n* F) [; [ J - end
复制代码 运行结果:- tic;% b/ U, U, z) [* {0 h' {
- fib(30)
1 g z) t& _% O# n6 c' x - toc% z- t6 c' I) r& O+ f& M/ J4 X
: Q6 D$ ^; v6 O% [; b. z7 ]! X- ans =; h8 m* ?: X# G% d% |7 k
- 832040
. q4 u* t) q7 T - 4 v( ]' ~; }\" u5 {( B) `
- Elapsed time is 26.315245 seconds.
复制代码 ===============
% i3 }! q( y. g8 m: X8 F' O Z
9 c( P9 g c$ @2 L+ f% NForcal 9(OpenFC演示)的Fibonacci函数及代码:- SetRealStackMax(1000); z\" D Q( @. C) x( h
- F(n)= which{' b; @' m4 j$ e0 i4 ]7 n3 D
- n == 0,. d& @; j2 I4 Y2 R0 e
- return(0),
+ y& b& b0 x% V8 D% c( ~% b - n == 1,
' E; ?; y; O( t+ a) P( v - return(1),+ \. t& A& o( I
- return [F(n - 1) + F(n - 2)]* u9 u: c4 G0 i1 u# m' Z3 @# x
- };
; T! v0 c5 n8 J - mvar:$ {, }5 V* C+ j% F, F
- t=sys::clock(),3 Z# k* E. U9 p @5 u
- F(30);: u+ s. N( [3 d6 L; y E2 w( q* f
- [sys::clock()-t]/1000;
复制代码 结果:
; J7 k) w) X5 W2 J832040.
8 O P2 l5 P6 G2 [9 H: V: r0.391 秒
3 F4 E- V4 z6 y3 S( f( B, l# T" J/ c- v# S7 ]' E9 o
二者效率相差数十倍。 |
zan
|