QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 9901|回复: 2
打印 上一主题 下一主题

极限测试之Matlab与Forcal的递归函数调用效率

[复制链接]
字体大小: 正常 放大
forcal 实名认证       

45

主题

3

听众

282

积分

升级  91%

  • TA的每日心情
    难过
    2012-8-27 18:22
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2011-7-31 10:08 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    以Fibonacci递归程序为例进行比较。
    9 T- b; v9 {& N2 t- a/ r- Y
    . R% x* w0 g+ a8 z) W: Q" @Matlab 2009a的Fibonacci函数定义:
    1. function k=fib(n)
      % P2 L1 u7 E, D: j+ t
    2. if n == 0
      , {6 a2 l4 @- D% e7 }* q  V. v( F& Q
    3.   k=0;! s\" A# Z8 f\" L- P1 B9 m, \
    4.   return;0 P( t( I* Z- s; ?' }0 Q. X* L
    5. else if n == 1! z% F% i+ U( A5 K  @7 L! S! Y
    6.   k=1;& A3 c% J8 \2 F5 }4 o8 u/ G6 c  n
    7.   return;
      ; n  G7 h' W5 j
    8. else; Q+ s$ H, }+ b1 d* O
    9.   k=fib(n - 1) + fib(n - 2);
      0 O\" r4 b! B7 |6 g
    10.   return;
      9 K* v6 c; u; R+ ^  L$ Q# Y+ X
    11. end: r# n) H\" P4 e* u6 ]
    12. end
    复制代码
    运行结果:
    1. tic;' b2 g- }0 l2 l
    2. fib(30)- t2 P; g7 k4 O  c* a
    3. toc$ O1 B5 Q& {/ p7 o. Q( [* S  P
    4. . X7 Z' e  R$ U, @
    5. ans =
      7 @! }) u! K5 e3 Z' ?6 y2 M
    6.       832040
      + J, B6 L. i# j0 D7 |
    7. 0 M2 ^3 ]: S* E1 {0 ?: H1 F6 L
    8. Elapsed time is 26.315245 seconds.
    复制代码
    ===============
    " C9 T; Q9 N) [( I" X, ?2 {9 x4 e: h& A* G, i, A
    Forcal 9(OpenFC演示)的Fibonacci函数及代码:
    1. SetRealStackMax(1000);; [. @* t' q( B! y/ F
    2. F(n)= which{/ `0 Z1 L; M) U2 J  i
    3.     n == 0,% A! R& a. G8 s# H% k* x
    4.         return(0),2 d: p) Y. x; Y' _% |0 b\" X$ Z
    5.     n == 1,( F9 q4 a% D7 R0 k& A/ G& n
    6.         return(1),
      . Z) i, V( A1 d5 |7 e3 o7 S) C5 g
    7.     return [F(n - 1) + F(n - 2)]
      / m) h% G4 [3 Y% n1 _( x
    8. };\" X: V# Y) v. _
    9. mvar:
      5 d7 A\" f+ I# d% d+ b1 m4 N
    10. t=sys::clock(),
      . B! A, N4 x4 }
    11. F(30);' l, P) G& ?. ^! t' ^; R2 P, N
    12. [sys::clock()-t]/1000;
    复制代码
    结果:5 D6 N" @7 m# s5 z; A& t" t
    832040.& Z! I2 F4 i; R9 c# Z+ G
    0.391  秒
    - R, k" b4 f/ n7 P5 g/ \( D* L, y) x8 P' O
    二者效率相差数十倍。
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    0

    主题

    0

    听众

    3

    积分

    升级  60%

    该用户从未签到

    回复

    使用道具 举报

    alair005        
    头像被屏蔽

    0

    主题

    4

    听众

    782

    积分

    升级  45.5%

  • TA的每日心情

    2012-2-7 08:08
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-8-31 20:54 , Processed in 0.398438 second(s), 67 queries .

    回顶部