V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
jiduxiyanghong
V2EX  ›  问与答

请教个关于排班的问题,能不能用程序算出最优的方案。

  •  
  •   jiduxiyanghong · Aug 23, 2016 · 2664 views
    This topic created in 3535 days ago, the information mentioned may be changed or developed.
    有 ABCD4 个人

    需求如下:

    每天 2 个人上班,做一休一,比如 1 号 A 和 B 上班, 2 号 C 和 D , 3 号又是 A 和 B ,就这么轮换下去。

    如何调整让人员能互相搭配上班,例如需要 A 分别和 B 、 C 、 D 都能搭到班。

    我目前弄出来的办法是周末其中一天是一个人上班,然后实现 B 、 D 两个人调换,然后在下一周末同样的方式使 A 、 C 互换:

    周五 A 、 B
    周六 C 、 D
    周日 A ( B 休)
    周一 C 、 B (D 休)
    周二 A 、 D


    但是这种方式不管怎么换还是不能让 A 和 C 、 B 和 D 在一个班


    如何有更好的方案?周末两天可以一个人的情况下。
    11 replies    2016-08-25 09:13:43 +08:00
    loading
        1
    loading  
       Aug 23, 2016 via Android
    循环嵌套
    jiduxiyanghong
        2
    jiduxiyanghong  
    OP
       Aug 23, 2016
    @loading 关键是我不会啊。。 我不是干这个的
    kindjeff
        3
    kindjeff  
       Aug 23, 2016
    AB AC AD BC BD CD
    tabris17
        4
    tabris17  
       Aug 23, 2016
    组合数学的问题,和会不会写程序没什么关系
    yjzll
        5
    yjzll  
       Aug 23, 2016 via Android
    哈哈,其实是数学问题,数学搞清楚了,编程核心内容也就一天
    jiduxiyanghong
        6
    jiduxiyanghong  
    OP
       Aug 23, 2016
    @kindjeff 这种方式不行, A 上了一天第二天必须休息,忘记说了,休息也不能安排太多的。,除了做一休一之外最多只能一个人另外安排 2 天
    prefere
        7
    prefere  
       Aug 23, 2016
    1 ab
    2 cd
    ...
    5 ab
    6 c
    7 d

    1 ac
    2 db
    ...
    5 ac
    6 d
    7 b

    1 ad
    2 bc
    ...
    5 ad
    6 b
    7 c

    1 ab
    2 cd
    ...
    Arnie97
        8
    Arnie97  
       Aug 24, 2016 via Android
    我感觉 Prolog 这门语言简直就是专门解决这种问题的
    blackboar
        9
    blackboar  
       Aug 24, 2016
    @prefere 最多的一个当月会另外休 5 天啊,一个 4 天,两个 3 天
    prefere
        10
    prefere  
       Aug 24, 2016
    能不能连着上两天啊,不连着貌似没结果啊。
    [['a', 'c'], ['b', 'c'], ['b', 'd'], ['a', 'c'], ['c', 'd'], ['a'], ['c'], ['a', 'b'], ['b', 'd'], ['a', 'c'], ['a', 'd'], ['b', 'c'], ['b'], ['d'], ['a', 'd'], ['a', 'b'], ['b', 'c'], ['a', 'd'], ['b', 'c'], ['a'], ['c'], ['a', 'd'], ['b', 'd'], ['a', 'b'], ['a', 'c'], ['c', 'd'], ['b'], ['d'], ['c', 'd'], ['a', 'b'], ['c', 'd'], ['b', 'd']]
    jiduxiyanghong
        11
    jiduxiyanghong  
    OP
       Aug 25, 2016
    @prefere 那我在琢磨琢磨吧,其实就是开会下边同事提出来的一个小问题,说是一直这么上班就见不到其他同事,后来想想也有道理的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   970 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 20:41 · PVG 04:41 · LAX 13:41 · JFK 16:41
    ♥ Do have faith in what you're doing.