轮值排班生成器:坏女孩宿舍的值日表自动排好
手排值日表最容易出的问题是排着排着就偏心了。定序轮换只有一条规则:每过一期,所有人整体挪一格。
这个工具需要浏览器脚本才能计算。如果这行字一直在,说明脚本没有加载成功,页面上的公式与口径仍然可以照着手算。
排法
第 i 期、第 j 项任务的负责人 = 成员[(i + j) mod 成员数] (i、j 从 0 开始计) 第 i 期覆盖天数 = 第 (i × 一期天数 + 1) 天,到第 ((i+1) × 一期天数) 天
这个式子保证两件事:同一期里不同任务落在不同的人身上(当成员数不小于任务数时),以及经过「成员数」个周期后每个人都轮过每一项。三种排法的对比和各自适合什么房间,写在轮值的三种排法。
假设与边界
- 任务比人多时会有人一期分到两项。表里会重复出现同一个名字,这是算法的正常结果,不是错误;工具会在表下提示。
- 不处理请假和调班。临时换班当面说一句就行,不要改表——表一改,下一期的顺序就乱了。
- 天数从第 1 天开始计,没有绑定具体日期,因为宿舍的「第一周」常常不是自然周。打印出来自己在表头写上起始日期。
- 期数上限 52,再长的表没有意义,一个学期通常重排一次。
打印与张贴
点「打印这张表」会调用浏览器的打印功能,页面会自动隐藏导航、侧栏和按钮,只留标题和表格。没有打印机就导出 CSV,或者直接照着屏幕手抄一份贴在门后——手抄的那张反而更容易被看。