Итак ... кто-то недавно попросил меня составить расписание для них, и я согласился.Когда я сел, чтобы сделать это, я понял, что это сложнее, чем я думал.Это просто расписание для смены 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
Это работает, я думаю, но это немного очевидно.Человек, который спросил меня, хотел увидеть разные варианты.Есть ли лучший способ сделать это, чтобы увидеть больше, чем просто этот вариант?Или есть даже программа, которая делает это для вас?