(現在 過去ログ39 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

No6069 の記事


■6069 / )  Re[1]: 3交代の出勤簿
□投稿者/ 通りすがり -(2010/09/16(Thu) 10:10:06)
    なんか面白そうなことやってるじゃん
    って、この問題を解く(数学的に解く)のはPCの能力では無理でないのかな

    通りすがりで戯言を書いてみる
    結局、マス目を一つずつ埋めていく方法に行きつくような
    条件を満たす解は相当多数ある筈だけど、そのうちの一つを求めてシャッフル

    10人x31日なら310マスを埋めていく
    1.まず、希望が出てるマス目(Aさんは15日に休日希望、Cさんは7日にb希望 等々)を埋める
    2.残りのマス目の1つ目を埋める、aを入れて条件満たさなかったら、bを入れる、まだ条件満たさなかったらcを入れる、まだなら休を入れる
    3.同様に、残りのマス目の2つ目を埋める、a入れて条件満たさなかったら、bを入れる、まだならcを、まだなら休を入れる
    4、同様に全部埋める(1の希望が悪くて全部埋まらないケースは自明で大抵事前に解るとおもうが、全部埋まらなかったら希望を削ってやり直し)
    ★完成(左上の方にaが、右下の方に休が偏る)
    5、1の希望に含まれない縦列(1日〜31日の希望が出てない日)をシャッフルして日にちを入れ替える
    6、休日条件の同一な人を同一グループとして、同一グループ内で希望を出さなかった人(横列)をシャッフルして人を入れ替える
    ★★かなーりバラけて完成
    7、気が向けば、もう一度縦列をシャッフル

    飽きたら、a,b,c,休 の優先順位で埋めていくのを別の順番に変えてみたりすると、また変わった解が出現するかも
    実際には表で処理して出力を転置集計
返信 [メール受信/OFF] 削除キー/


Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -