QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 9653|回复: 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递归程序为例进行比较。  F4 ~3 }  h4 L0 k  h
    4 K8 ]% r2 [* H- Z5 B
    Matlab 2009a的Fibonacci函数定义:
    1. function k=fib(n)& s4 v% `; _1 j% O+ r
    2. if n == 03 |( ~$ I1 G; B0 \+ M; \1 t
    3.   k=0;2 w6 X9 V\" x, w$ _# ]$ P( b
    4.   return;3 h& H8 a7 p, C1 E! K2 p5 t
    5. else if n == 1
      & d8 p4 i/ ]3 \' B, }: W2 H
    6.   k=1;. c\" x$ v+ c3 M$ O/ ^, i  I4 l
    7.   return;( \6 ]7 R  K, Q% k
    8. else
      , t& {2 i7 l+ J$ r4 K5 B, Y
    9.   k=fib(n - 1) + fib(n - 2);* z( ~( @- H6 O- r1 `4 ?6 f
    10.   return;
      * z+ R9 a4 u9 {8 l
    11. end
      2 ]2 ^# i; }1 Y. X
    12. end
    复制代码
    运行结果:
    1. tic;
      . ^9 v, c\" q- z# G4 q
    2. fib(30)
      ) {4 _5 k/ Y* M
    3. toc
      ! ~7 h* V1 f6 N
    4. ; A! G8 U* \1 W& r
    5. ans =, B; K0 [1 I( x8 Y0 l5 `\" |8 g$ u
    6.       832040
      & J' n9 |% }1 s5 m1 G9 ^
    7. 3 i1 E( q- K4 {8 d# P
    8. Elapsed time is 26.315245 seconds.
    复制代码
    ===============
    % j1 {& D" p  T
    % `& `$ J* v8 }# b7 y8 G( jForcal 9(OpenFC演示)的Fibonacci函数及代码:
    1. SetRealStackMax(1000);
      , k' a* X# g# u$ C& e- D
    2. F(n)= which{4 I6 i4 V. K0 j+ L; }8 U' P
    3.     n == 0,
      & r3 B3 K0 W) z# t; R
    4.         return(0),
      ' s! S) W, r/ X! [/ X9 ^; t3 t$ q
    5.     n == 1,0 e, \8 g* V9 l3 @7 p) R
    6.         return(1),
        w. m+ \- u\" [) x6 G
    7.     return [F(n - 1) + F(n - 2)]
      1 a# N6 U' D) K* _' u( ]9 z) S, ?( c1 p. N
    8. };9 I. C1 e6 ]( h& a& Q
    9. mvar:
      1 t6 Z2 ^% c: I, w) l! k% t
    10. t=sys::clock(),
      2 w7 M) }\" H7 r$ D# u( `( }
    11. F(30);
      , T) F5 }. P% G. ?
    12. [sys::clock()-t]/1000;
    复制代码
    结果:7 C; t0 l2 R% T, g9 u
    832040.
    8 m7 g0 g" j' ]& L( c0.391  秒* C$ @( @6 I2 k% y/ u

    : ?6 g' Q; N, n  o2 R3 P3 j7 v5 W二者效率相差数十倍。
    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-4-15 00:59 , Processed in 0.482070 second(s), 68 queries .

    回顶部