QQ登录

只需要一步,快速开始

 注册地址  找回密码
楼主: guarguar
打印 上一主题 下一主题

【讨论】新手求助:关于lingo的wrap函数

[复制链接]
字体大小: 正常 放大
Super_xu        

2

主题

3

听众

26

积分

升级  22.11%

  • TA的每日心情
    开心
    2011-9-3 09:45
  • 签到天数: 1 天

    [LV.1]初来乍到

    群组Matlab讨论组

    群组LINGO

    群组数学建模

    群组数学建摸协会

    11#
    发表于 2011-7-2 10:31 |只看该作者
    |招呼Ta 关注Ta
    回复

    使用道具 举报

    吴楚 实名认证       

    0

    主题

    3

    听众

    215

    积分

    升级  57.5%

  • TA的每日心情
    郁闷
    2016-4-7 19:30
  • 签到天数: 63 天

    [LV.6]常住居民II

    该函数返回j=index-k*limit,其中k 是一个整数,取适当值保证j 落在区间[1,limit]内。该函数相当于index 模limit 再加1。该函数在循环、多阶段计划编制中特别有用。) Q9 E2 ?( X: o2 Z2 o; Z4 G

    % H/ u2 W) ~: B( w1 U通俗的解释是:用来转换集合两端的索引,在集合的另一端继续索引。也就是说,在集合循环函数中,当达到集合的最后(或第一个)成员后,可以用@WRAP函数把索引转到集合的第一个(或最后一个)成员。在数学上@WRAP(I,N)的返回值当I位于区间[1,N]内时返回I,否则返回J=I-N*K,K为整数,且J位于区间[I,N]内。如@WRAP(3,10)返回值为3, @WRAP(35,10)返回值为5, @WRAP(40,8)返回值为8, @WRAP(9,7)返回值为2.: H3 S! B, W  U* Q, X* X" v

    7 h. \2 s# l' O& z9 E@for(days(J): . f7 \; d/ H9 n( L3 N. z+ z& ^
        @sum(days(I) | I #le# 5:
    - k4 }+ _' ?& G$ Q5 S      start(@wrap(J+I+2,7))) >= required(J)); 2 P  w9 m) e/ J0 t: d
    day(I)=1,2,3,4,5不变(因为每个人都要连续工作5天,这里的脚码表示取值的顺序,并不是返回值)。当day(J)为1时,由于7为循环周期,故@warp(J+I+2)返回的值是4,5,6,7,1的职员和;当day(J)为2时,@warp(J+I+2)返回的值是5,6,7,1,2的职员和,以此类推。
    回复

    使用道具 举报

    刘振        

    0

    主题

    2

    听众

    11

    积分

    升级  6.32%

  • TA的每日心情
    郁闷
    2011-9-9 20:51
  • 签到天数: 1 天

    [LV.1]初来乍到

    model: 9 X$ ?% `2 P% n* o
    sets:
    ! e' ~( L1 V: P/ e' Ndays/mon..sun/: required,start;
    . ?) V" U6 R) ^$ h7 F* kendsets
    , K& B6 i- }  o: i! f5 T) z& l3 Bdata:
    ' R3 X+ U" I! F' n$ e9 O4 W!每天所需的最少职员数;
    ! h. }4 V, \8 ?2 xrequired = 20 16 13 16 19 14 12; 0 ]9 c3 D9 q; C0 Q9 K
    enddata , c8 E4 T/ o2 L9 x* t- W
    !最小化每周所需职员数;
    # r' l* ?* `% X% H- `1 Cmin=@sum(days: start); % s* s7 q7 n9 @; W& i( T0 O1 y
    @for(days(J):
    8 g+ U) a% B9 k  T& E: x    @sum(days(I) | I #le# 5: 0 r! i6 r  i- I5 n/ c
          start(@wrap(J+I+2,7))) >= required(J)); " \5 v* A9 o4 d" [4 }( x
    end
    - a: J2 m$ @) b. J
    $ z- C+ q2 v; V8 ^2 y% u, |. t- |解释下:3 Y2 z" J1 E& o: b
    @for(days(J): 1 b! n2 U. y0 m. U9 \+ f" _& L" R
        @sum(days(I) | I #le# 5: ) |2 g: B7 d9 [
          start(@wrap(J+I+2,7))) >= required(J));+ y1 ]6 N2 o% k" M2 @/ T4 g* k, r

    6 X) e& U7 e7 |$ J当day(J)为1时,day(I)=1,2,3,4,5.由于7为循环周期,故@warp(J+I+2)返回的值是4,5,6,7,1的职员和.当day(J)为2时,@warp(J+I+2)返回的值是5,6,7,1,2的职员和,以此类推。" W- s' K2 Z* a8 S7 W$ K. b

    ( A0 Z8 L! m; U6 F3 o网上有一种说法是,英美中星期表示的不同,中国将星期一看成第一天,而国外则是将星期日看成第一天。在lingo中sun就表示第一天,用数字0标识。因此@wrap(index,limit)的用法就是index模limit再加1。将上面的程序中的集修改为
    0 ?: \0 r6 u( R4 J; V2 |  e# k: S

    , K! {% ?! E9 E+ Ssets:1 l! w: }) v" i0 Q( X
    days/1 2 3 4 5 6 0/: required,start;
      e/ C- }$ ]# Y% v( ]endsets' b$ B1 h& g4 e) a
    8 }* N1 B" K$ ~9 F
    回复

    使用道具 举报

    刘振        

    0

    主题

    2

    听众

    11

    积分

    升级  6.32%

  • TA的每日心情
    郁闷
    2011-9-9 20:51
  • 签到天数: 1 天

    [LV.1]初来乍到

    回复

    使用道具 举报

    成城        

    0

    主题

    2

    听众

    120

    积分

    升级  10%

  • TA的每日心情
    郁闷
    2011-9-11 00:41
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    自我介绍
    没有最好只有更好
    回复

    使用道具 举报

    0

    主题

    4

    听众

    65

    积分

    升级  63.16%

    该用户从未签到

    回复

    使用道具 举报

    ehi28        

    0

    主题

    4

    听众

    140

    积分

    升级  20%

    该用户从未签到

    回复

    使用道具 举报

    5

    主题

    4

    听众

    127

    积分

    升级  13.5%

  • TA的每日心情
    擦汗
    2012-5-15 12:46
  • 签到天数: 34 天

    [LV.5]常住居民I

    自我介绍
    我想要参加数模竞赛,希望大家多多交流
    刘振 发表于 2011-8-12 20:01
    # e9 m6 p2 ^+ J/ Q, h- [* u# Q+ Vmodel: $ ^0 r9 G6 w2 X4 d# d
    sets:
    4 V. j+ w* M  w$ Odays/mon..sun/: required,start;

    * t' K5 o: \0 i1 D/ b- B' ^+ k# _6 B对一下做下调整,便于理解6 L* G: A1 h6 m3 B% @8 L0 @
    3 v4 \) O6 X1 u; d; ?
    model: . r3 x5 d/ S& @! X, t( _3 P3 H, _
    sets: : q  L. A1 w6 `6 d! Z
    - X3 O; b2 M: F& J5 s: F: D days/mon..sun/: required,start; 3 G& {+ d- L1 W& ]& S3 b; J  `
    endsets - h  W) ]$ D9 O5 I2 ~) H  K
    7 O, b3 B5 e4 d3 d+ k/ y5 s data: 7 Z5 ?1 |+ O- g0 u4 G! @" K
    !每天所需的最少职员数;
    0 }9 }( ^5 V# P9 K) v' U$ prequired = 20 16 13 16 19 14 12; ; }: G' I5 C3 z! F( \' p" b
    $ ~0 W: \% n# h* F9 _4 w) ~6 `' { enddata   ]- t4 R' b. j  e9 q% Z& S( |1 Z1 w& g1 X4 h
    !最小化每周所需职员数; . z4 K' V6 u5 \9 I. X% C0 \& H  g9 ^) q. \+ _# K+ v
    min=@sum(days: start);
    ; W6 Z- S; t8 ~5 d! Y@for(days(J):
    7 y% ^) N0 i# L, R( Q& I' D    @sum(/ i6 e3 S8 O) K# d* c
                 days(I) | I #le# 5:
    ! r( l1 h& b4 e, j9 @! o             start(@wrap(J+I+2,7))
    + f5 Q' c1 `5 O- P" ]             ) >= required(J));
    8 b2 K9 E# l# ?" u( G, H5 Hend2 D4 e+ S$ \  x1 `1 a# U
    3 r& v3 y( t( [" E9 o5 S
    回复

    使用道具 举报

    9

    主题

    7

    听众

    188

    积分

    升级  44%

  • TA的每日心情
    慵懒
    2013-8-23 15:15
  • 签到天数: 84 天

    [LV.6]常住居民II

    自我介绍
    我想参加明年的数模竞赛

    群组西安交大数学建模

    群组数学建摸协会

    群组英语科技论文写作实训

    追梦者 发表于 2009-8-13 10:27
    4 P4 l. G4 r9 W( y3 Z: ^) F小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星 ...

    - \& ~  n2 k/ y' H* H4 p2 S) N我也觉得不用+1啊,
    回复

    使用道具 举报

    dirk190        

    4

    主题

    11

    听众

    41

    积分

    升级  37.89%

  • TA的每日心情
    奋斗
    2014-9-24 22:31
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    自我介绍
    在校学生
    追梦者 发表于 2009-8-13 10:27 : B7 x( n0 Z, g% W5 p! b
    小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星 ...
    " e% W4 }! k/ ?8 D' b, N: i
    换成1到7 结果相同的
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-8-23 19:58 , Processed in 0.741690 second(s), 101 queries .

    回顶部