それで..最近誰かが私に彼らのタイムテーブルを作るように頼んだので、私は同意しました。座ってみると、思ったより難しいことに気づきました。昼夜問わず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
これは機能すると思いますが、少し明白です。私に尋ねた人は、さまざまなオプションを見たいと思っていました。このオプション以上のものを表示するためにこれを行うためのより良い方法はありますか? それとも、あなたのためにこれを行うプログラムさえありますか?