V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jiduxiyanghong
V2EX  ›  问与答

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

  •  
  •   jiduxiyanghong · 2016-08-23 15:53:15 +08:00 · 2065 次点击
    这是一个创建于 3012 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有 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 条回复    2016-08-25 09:13:43 +08:00
    loading
        1
    loading  
       2016-08-23 15:58:04 +08:00 via Android
    循环嵌套
    jiduxiyanghong
        2
    jiduxiyanghong  
    OP
       2016-08-23 16:01:59 +08:00
    @loading 关键是我不会啊。。 我不是干这个的
    kindjeff
        3
    kindjeff  
       2016-08-23 16:06:22 +08:00
    AB AC AD BC BD CD
    tabris17
        4
    tabris17  
       2016-08-23 16:09:25 +08:00
    组合数学的问题,和会不会写程序没什么关系
    yjzll
        5
    yjzll  
       2016-08-23 16:31:16 +08:00 via Android
    哈哈,其实是数学问题,数学搞清楚了,编程核心内容也就一天
    jiduxiyanghong
        6
    jiduxiyanghong  
    OP
       2016-08-23 17:18:47 +08:00
    @kindjeff 这种方式不行, A 上了一天第二天必须休息,忘记说了,休息也不能安排太多的。,除了做一休一之外最多只能一个人另外安排 2 天
    prefere
        7
    prefere  
       2016-08-23 20:16:56 +08:00
    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  
       2016-08-24 01:15:21 +08:00 via Android
    我感觉 Prolog 这门语言简直就是专门解决这种问题的
    blackboar
        9
    blackboar  
       2016-08-24 21:27:34 +08:00
    @prefere 最多的一个当月会另外休 5 天啊,一个 4 天,两个 3 天
    prefere
        10
    prefere  
       2016-08-24 23:56:54 +08:00
    能不能连着上两天啊,不连着貌似没结果啊。
    [['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
       2016-08-25 09:13:43 +08:00
    @prefere 那我在琢磨琢磨吧,其实就是开会下边同事提出来的一个小问题,说是一直这么上班就见不到其他同事,后来想想也有道理的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1303 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:38 · PVG 07:38 · LAX 15:38 · JFK 18:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.