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。该函数在循环、多阶段计划编制中特别有用。
    ) @) y4 W* N+ ?$ `
    ( ~! v  U. E4 g2 [6 Q( Y通俗的解释是:用来转换集合两端的索引,在集合的另一端继续索引。也就是说,在集合循环函数中,当达到集合的最后(或第一个)成员后,可以用@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.1 E0 Y) I3 R7 E! g9 d9 b) _

    " P+ M1 U* d6 ?+ x3 b( e; ^1 R5 M@for(days(J): 5 h  @9 q. `. r4 A" U) i
        @sum(days(I) | I #le# 5:
    3 A6 ]! ?9 g7 A      start(@wrap(J+I+2,7))) >= required(J)); 2 {3 s% b# `5 F5 A+ H
    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: ) ^3 v& n8 @% N1 `5 V. S
    sets:
    . }8 U& F- h" d1 Tdays/mon..sun/: required,start;
    ( ?* R: X# u, s/ B& ~  zendsets
    ( D3 [8 i! w" h, z* N, i6 f" Ldata:
    & t4 E" `. d' ?$ D4 u# b/ h- A& T!每天所需的最少职员数;
    - E) ?. i, Q0 grequired = 20 16 13 16 19 14 12; 3 c' k5 E. G5 K' ~1 i) I1 X
    enddata
    % ?, @3 ^% x  G( B9 I' U6 f!最小化每周所需职员数;
    * `* @5 E3 k2 V3 I0 umin=@sum(days: start);
    : [9 _) y. n; |2 {8 z@for(days(J): , }- \/ B. i) d6 ~
        @sum(days(I) | I #le# 5:
    : r/ N5 K8 B4 Q& o8 a* r8 P2 M0 a6 h      start(@wrap(J+I+2,7))) >= required(J)); : k! o$ @$ d5 O  z; [4 S
    end
    3 n) v- |5 a! D$ |7 w  K# n
    6 \; x' |' C5 d6 V" S6 T! q解释下:: m. L2 B; r4 ~/ E: b6 t# p+ k6 `
    @for(days(J):
    * i$ t1 `! l& i0 K0 m6 R) Q# @4 d    @sum(days(I) | I #le# 5:
    9 O' o0 |2 N- w. L% o4 T      start(@wrap(J+I+2,7))) >= required(J));
    / J: B9 T) `# `6 {2 t6 }& _, j% v" }, _$ X' q. K( _- s1 F
    当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的职员和,以此类推。
    ' S2 ]% U$ [) f; q
    4 V& F+ @1 u! e5 y( |网上有一种说法是,英美中星期表示的不同,中国将星期一看成第一天,而国外则是将星期日看成第一天。在lingo中sun就表示第一天,用数字0标识。因此@wrap(index,limit)的用法就是index模limit再加1。将上面的程序中的集修改为
    ) @8 y' g  K$ ?0 \
    . m8 K9 n- I7 d* e6 ]
    : d- Q# L% h& |, Zsets:
    7 E+ ~5 R$ [! y  E; {days/1 2 3 4 5 6 0/: required,start;
    $ t2 s' n( {, C8 Oendsets, `  b; d% P/ ^# j
    * _( W& Y9 H1 Y# w% f* b& M: t/ `
    回复

    使用道具 举报

    刘振        

    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 5 }+ d$ k) e8 Y5 W
    model: 8 [. h8 B& Q! a8 H: i4 R$ i; y
    sets: 4 a7 A; a7 }) }
    days/mon..sun/: required,start;

    8 A# E+ }, I- W1 D" r8 J  c对一下做下调整,便于理解
    ! U' Y( n$ `, a' m( y- H0 B) x6 _" }5 p* K3 x
    model: : }9 b4 f* l& T# q
    sets: : q  L. A1 w6 `6 d! Z: Z: [0 J! D/ J# q
    days/mon..sun/: required,start;
    - c; I: X- l: w6 i5 Yendsets - h  W) ]$ D9 O5 I2 ~) H  K' [/ t5 ?: c) v$ \# n; z3 ]
    data: 2 }1 }" B! M; \
    !每天所需的最少职员数;
    8 a/ `- i6 k- j5 H1 S5 {5 S4 Crequired = 20 16 13 16 19 14 12; ; }: G' I5 C3 z! F( \' p" b3 `  }; s$ v# m& @$ W! X0 l
    enddata   ]- t4 R' b. j  e9 q% Z# a' ~2 z  G* F. y% f5 [. n
    !最小化每周所需职员数; . z4 K' V6 u5 \9 I. X% C0 \& H
    0 s9 i- e% {) `& Y min=@sum(days: start);
    $ y( G  ^. w  ?- f1 T: j1 F@for(days(J): " H+ u: s, V  t) {
        @sum(
    ( F8 L' J, i2 |7 {             days(I) | I #le# 5: + K! x# t5 o$ N5 o0 n
                 start(@wrap(J+I+2,7))
    1 D$ k2 m: x$ m+ q" q2 n             ) >= required(J));
    $ I$ D$ Z7 v% q/ v/ {end
    ) {- p/ R) p. s  }8 F 6 M0 H3 E4 s# v# e3 w
    回复

    使用道具 举报

    9

    主题

    7

    听众

    188

    积分

    升级  44%

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

    [LV.6]常住居民II

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

    群组西安交大数学建模

    群组数学建摸协会

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

    追梦者 发表于 2009-8-13 10:27
    1 {- ]7 \& |. N6 _) ^+ G& T3 Z  u小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星 ...
    ' b# H- {0 Y9 j2 c$ v. l6 a
    我也觉得不用+1啊,
    回复

    使用道具 举报

    dirk190        

    4

    主题

    11

    听众

    41

    积分

    升级  37.89%

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

    [LV.3]偶尔看看II

    自我介绍
    在校学生
    追梦者 发表于 2009-8-13 10:27
    # Y1 Z; @3 L$ W8 s小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星 ...

    ( j" |# a& V* Q换成1到7 结果相同的
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-7-3 03:07 , Processed in 0.525336 second(s), 102 queries .

    回顶部