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。该函数在循环、多阶段计划编制中特别有用。% |6 }  R1 G; X0 m" S' J
    " H. Y2 [$ ~7 V
    通俗的解释是:用来转换集合两端的索引,在集合的另一端继续索引。也就是说,在集合循环函数中,当达到集合的最后(或第一个)成员后,可以用@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.- o9 ]- l1 s5 u

    / ?, r* m! P) N: {" w2 r4 f4 R@for(days(J): & Q- O+ j# q# Y& w
        @sum(days(I) | I #le# 5:
    : U- R+ E0 ^) b" D9 X& E$ a      start(@wrap(J+I+2,7))) >= required(J)); 3 I! y; Q9 L/ Y/ j2 h8 B
    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: $ S( C7 m1 l1 a7 l2 R& v" U
    sets:
    ( \# _4 q: C$ c  ?3 N1 ~days/mon..sun/: required,start;
    : R  J5 z6 L, B* W, t! V4 C, _endsets , G6 e  ?2 y" e2 r  e. g
    data:
    , |6 n& J( R; R!每天所需的最少职员数; " K+ i' T+ s  a) V
    required = 20 16 13 16 19 14 12; . M0 {: W& B! M0 j; C
    enddata
    " \6 {4 m# b  n" R3 @" W!最小化每周所需职员数; % q* V) _0 {# p# K1 p& R+ {
    min=@sum(days: start);
    ; R* M7 \" ]+ S7 Z7 m) ^" N3 b@for(days(J):
    4 g% K; W8 o, O    @sum(days(I) | I #le# 5:
    ( ~: B" E: d! A      start(@wrap(J+I+2,7))) >= required(J)); - ~# P( A7 \. D( v( @
    end
    9 u0 o' n+ e2 Y  b# Z9 I# M- }! O6 c! k2 \) G! h
    解释下:
    * v5 T1 H; Q; N$ ?/ m. _@for(days(J): . W( N' D3 [3 ?" h  B; A+ X
        @sum(days(I) | I #le# 5: ; O: O) T, p. E# m6 o6 U# h. e
          start(@wrap(J+I+2,7))) >= required(J));
    ! K) j1 y5 @1 l  z& g, A
    6 x# n) k$ K  ?# V! _4 `当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的职员和,以此类推。
    9 V' |( g4 s, n4 V, ]
    " \6 z% U" j, L+ _; O& o网上有一种说法是,英美中星期表示的不同,中国将星期一看成第一天,而国外则是将星期日看成第一天。在lingo中sun就表示第一天,用数字0标识。因此@wrap(index,limit)的用法就是index模limit再加1。将上面的程序中的集修改为
    9 n* o' N2 x, t' \4 G
    ( x- b! k' x( W$ @# l* {" }% K: ?2 K
    4 S+ p4 I2 o) O7 t; \* }  {sets:, }! c& o+ V* ]
    days/1 2 3 4 5 6 0/: required,start;& q8 F8 s  s8 N* k$ x
    endsets: J6 D. O2 A) |" B: w1 J

    : M2 d) V2 a7 U
    回复

    使用道具 举报

    刘振        

    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
    , B, l+ r3 M* }3 n' O8 kmodel:
    ; \; R! A. X* K/ n& w7 Ksets:
    # e6 O3 x; u: ?% n  o" hdays/mon..sun/: required,start;

    " @2 ?' [# Z* m' Z对一下做下调整,便于理解
    * [8 f+ Y$ u/ ^' d  R. V: j, H, r+ w( _( u0 `$ v
    model: - v0 ^. `4 a3 t1 ~9 Z
    sets: : q  L. A1 w6 `6 d! Z: q# h& E0 M. p# f, q
    days/mon..sun/: required,start; 0 K7 I/ k3 i  P7 k7 W0 _! a/ p' u
    endsets - h  W) ]$ D9 O5 I2 ~) H  K8 o9 ]" n6 L7 m3 ]7 z5 J% s% R; R
    data:
    ' ^- _' }1 p& ^! G!每天所需的最少职员数; ; a; Z. p  j! x9 n3 T9 d! ]
    required = 20 16 13 16 19 14 12; ; }: G' I5 C3 z! F( \' p" b( ]: E! f/ F% f1 }" H# D0 k  ?
    enddata   ]- t4 R' b. j  e9 q% Z
    9 c6 m) J# }% R- x !最小化每周所需职员数; . z4 K' V6 u5 \9 I. X% C0 \& H
    6 ]4 `' V4 b: J% c min=@sum(days: start); ( r5 H1 _; ~2 Z! u( s3 m
    @for(days(J):
    8 _2 A& ?8 N! P) q  H    @sum($ q* S3 f0 f9 q; K/ D
                 days(I) | I #le# 5: 5 M' m. ?' L% ^2 }1 R( r6 T
                 start(@wrap(J+I+2,7))' G, {5 T- e: U
                 ) >= required(J)); 6 T* a! Z3 f  {& m0 N
    end
    0 U" ?+ x* d8 |6 T  I, k5 w3 |% X + ^' k7 |" u! T6 r
    回复

    使用道具 举报

    9

    主题

    7

    听众

    188

    积分

    升级  44%

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

    [LV.6]常住居民II

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

    群组西安交大数学建模

    群组数学建摸协会

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

    追梦者 发表于 2009-8-13 10:27 0 d! L' O  g' l
    小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星 ...
    ' q6 m1 ]8 i# q( @$ v
    我也觉得不用+1啊,
    回复

    使用道具 举报

    dirk190        

    4

    主题

    11

    听众

    41

    积分

    升级  37.89%

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

    [LV.3]偶尔看看II

    自我介绍
    在校学生
    追梦者 发表于 2009-8-13 10:27 4 ^$ W" ]; `" j' ~5 T$ \& L
    小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星 ...
    5 o: e4 v9 {9 v5 c$ T
    换成1到7 结果相同的
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-11-8 10:25 , Processed in 1.174073 second(s), 101 queries .

    回顶部