所以..最近有人要求我为他们制定时间表,我同意了。当我坐下来做这件事时,我意识到这比我想象的要难。这只是一个时间表,让 4 人白天或晚上轮班。
我想到了这样的事情:
for Monday to Saturday {
for(i=0;i<people.length;i++){
if (person[i].available()){
person.worksDay()
person is now not available.
}
}
for(i=0;i<people.length;i++){
if (person[i].available()){
person[i].worksNight()
person[i] is now not available.
}
}
}
所以这个算法背后的想法是,每一天,一个人被分配到一个白班或夜班。如果一个人不只是轮班工作并且他们不在假期,那么他们是可用的。这是周一到周六。正如您可能知道的那样,给定 A、B、C、D 人,分配将如下所示(如果没有人在假期):
Mon A B
Tue C D
Wed A B
Th C D
Fri A B
Sat C D
我猜这可行,但有点明显。问我的人想看看不同的选择。有没有更好的方法来执行此操作以查看更多内容而不仅仅是此选项?或者甚至有一个程序可以为你做到这一点?