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。该函数在循环、多阶段计划编制中特别有用。2 G% d# n% {9 O) e

    & L' p' O4 v% Q9 J' W' I' m通俗的解释是:用来转换集合两端的索引,在集合的另一端继续索引。也就是说,在集合循环函数中,当达到集合的最后(或第一个)成员后,可以用@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." `: L2 B0 g) e$ O

    ) `; g0 U' K, C0 ^% N( u@for(days(J):
    2 E1 a3 y( r( S% K9 g6 k; N8 B4 o    @sum(days(I) | I #le# 5:
    ! d1 O: C( S6 R, N  z      start(@wrap(J+I+2,7))) >= required(J));
    3 W( v9 L+ \$ I  ~0 Qday(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:
    8 f! Y! j0 Z& [; a- f+ G9 W4 Esets:
    , c8 R- g2 ?5 T% T& c  f$ Q8 Zdays/mon..sun/: required,start; 2 @; j3 N* l) \$ l; Q0 C; B0 f
    endsets
    7 q/ N4 @3 `/ D, i, c6 K2 fdata:
    + k/ X6 o0 D9 `: t+ y$ V& Q!每天所需的最少职员数;   \) V' T# ^4 R; T6 F
    required = 20 16 13 16 19 14 12; ! \/ @, O6 Q* k7 f0 P. I
    enddata + Y5 a% [4 Z! e& w$ V  t: d
    !最小化每周所需职员数;
    2 i) M. {4 X+ Fmin=@sum(days: start); 6 k( L% J  L% R* I: |7 b: {. @4 S
    @for(days(J):
    & m: U; O/ U, B9 m6 k4 T3 }% F. ^+ r    @sum(days(I) | I #le# 5:
    : F6 ], O$ E7 C! ?/ b2 A0 ^5 f      start(@wrap(J+I+2,7))) >= required(J));
    9 ]) \3 h( t2 U9 J3 K" pend1 s- I2 I# _3 I, @* l- W/ ^3 b7 P

      B+ A/ t" j* j6 w: b6 D解释下:
    * j* Z7 I  i6 X* Y: a@for(days(J):
    $ B3 r8 j2 r( U7 K    @sum(days(I) | I #le# 5:
    & C0 v5 ~* V! b& w2 {      start(@wrap(J+I+2,7))) >= required(J));$ }% e' D% d8 T6 U

    : S" r, g! @4 k- a当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的职员和,以此类推。
    " K; O7 q$ k0 O( v& U
    - R3 s7 h" P4 O+ @7 k( z网上有一种说法是,英美中星期表示的不同,中国将星期一看成第一天,而国外则是将星期日看成第一天。在lingo中sun就表示第一天,用数字0标识。因此@wrap(index,limit)的用法就是index模limit再加1。将上面的程序中的集修改为
    ; F9 F8 F) m% t: z
    ) I+ _4 Z+ H4 b! _7 K) K$ B3 @- F* D
    sets:
    & Q7 R; T5 U% S/ Zdays/1 2 3 4 5 6 0/: required,start;
    % _& Y' m  l5 s( H5 ]6 p# P" m8 dendsets3 I( a% A$ \9 {

      o1 K  p0 u% W  C
    回复

    使用道具 举报

    刘振        

    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
    ' y8 ]6 p! o% o* b5 Amodel:
    8 g- [( _* H5 w- j6 G" {sets: 9 G4 S3 t# B( |) n- G5 ~5 C3 V# T" a
    days/mon..sun/: required,start;
    9 ^1 z! X! I* P  Z: a6 L
    对一下做下调整,便于理解; \7 `" y1 |- E/ d' f2 t

    % }1 ~. v" P3 n8 \/ Lmodel: , F, s% X# \: J
    sets: : q  L. A1 w6 `6 d! Z: C4 ^( S6 L( Z/ S. `! R: _9 E
    days/mon..sun/: required,start; - p/ q" x1 e9 ~6 V+ R4 u
    endsets - h  W) ]$ D9 O5 I2 ~) H  K0 B. k) v4 ?% a% Z) A; \2 }9 j+ C
    data:
    2 y" |( ^+ w& c: ]- ^2 {; T& o* D!每天所需的最少职员数; 3 Y* S0 @$ Z3 W5 h! n) g5 s3 i
    required = 20 16 13 16 19 14 12; ; }: G' I5 C3 z! F( \' p" b
    7 X& |9 R2 H  H; C enddata   ]- t4 R' b. j  e9 q% Z
      N/ Z" C2 f1 J' T! ]4 ~ !最小化每周所需职员数; . z4 K' V6 u5 \9 I. X% C0 \& H( k$ T  E) k; k8 i1 m4 v% d; N
    min=@sum(days: start);
    ) c, e' {; }- e+ s0 b# F* [@for(days(J): : U3 B2 q& ^, |% d5 X
        @sum(
    8 d% I/ {3 U( \& c             days(I) | I #le# 5:
    : D$ Y& J! L$ P4 d             start(@wrap(J+I+2,7))9 @( I: L5 ?4 g2 _( [8 P
                 ) >= required(J)); 1 O# Z' P: f3 a$ q" N. ], l, `3 F
    end, z& j' m9 n- s' i$ o8 a

    / g  A6 @& _; |
    回复

    使用道具 举报

    9

    主题

    7

    听众

    188

    积分

    升级  44%

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

    [LV.6]常住居民II

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

    群组西安交大数学建模

    群组数学建摸协会

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

    追梦者 发表于 2009-8-13 10:27
    ) K' {/ u* ~5 b* [5 J) r2 p1 N% k% E小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星 ...
    6 ^9 O% }9 Q/ f5 N; v0 E
    我也觉得不用+1啊,
    回复

    使用道具 举报

    dirk190        

    4

    主题

    11

    听众

    41

    积分

    升级  37.89%

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

    [LV.3]偶尔看看II

    自我介绍
    在校学生
    追梦者 发表于 2009-8-13 10:27 , o' p3 h* m+ G$ m, f
    小弟与上面这位仁兄的理解稍有不同,英美中星期表示与我们不同,我们将星期一看成第一天,而他们则是将星 ...

    , F: p3 S. y5 {8 e1 s换成1到7 结果相同的
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-8-1 04:33 , Processed in 0.735215 second(s), 101 queries .

    回顶部