質問編集履歴
3
test
CHANGED
File without changes
|
test
CHANGED
@@ -390,6 +390,8 @@
|
|
390
390
|
|
391
391
|
【制約条件1】
|
392
392
|
|
393
|
+
```
|
394
|
+
|
393
395
|
for day in range(len(shift)):
|
394
396
|
|
395
397
|
for am_pm in range(len(shift[day])):
|
@@ -408,12 +410,16 @@
|
|
408
410
|
|
409
411
|
print('社員いません')
|
410
412
|
|
413
|
+
```
|
414
|
+
|
411
415
|
できたシフトに社員がいるかどうかの判別は上記のプログラムでできたのですが「社員がいません」となったリストを、そのリストの1中のランダム1人とシフト希望は出したが入らなかった社員ランダム1人と入れ替えるプログラムにしたく教えていただきたいです。
|
412
416
|
|
413
417
|
|
414
418
|
|
415
419
|
【制約条件2】
|
416
420
|
|
421
|
+
```
|
422
|
+
|
417
423
|
day1=[d1gozen,d1gogo]
|
418
424
|
|
419
425
|
day2=[d2gozen,d2gogo]
|
@@ -436,6 +442,8 @@
|
|
436
442
|
|
437
443
|
if people in week[i-1] and if people in week[i+1]:
|
438
444
|
|
445
|
+
```
|
446
|
+
|
439
447
|
「3連勤以上は禁止」は処理中のシフトの前後2シフト共ににその人がいるかどうかを調べ、3連勤をしていたら、その人とその時間帯にシフト希望は出したが入らなかった従ランダム1人と入れ替えるプログラムにしたく教えていただきたいです。
|
440
448
|
|
441
449
|
|
2
従業員のシフト希望
test
CHANGED
File without changes
|
test
CHANGED
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
#cは主婦
|
54
54
|
|
55
|
-
c=[
|
55
|
+
c=[3,[0,0,0,0,9],1,2,1,"c"]
|
56
56
|
|
57
57
|
#dはフリーター
|
58
58
|
|
1
各従業員のシフト希望
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,31 +30,29 @@
|
|
30
30
|
|
31
31
|
```Python
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
#従業員=["能力値","シフト希望時間","役職","休む度合い","対応度合い"]
|
33
|
+
#従業員=["能力値","シフト希望時間","役職","休む度合い","対応度合い","名前"]
|
36
34
|
|
37
35
|
#役職=["社員","アルバイト"]
|
38
36
|
|
39
37
|
#役職=[0,1]
|
40
38
|
|
41
|
-
#シフト希望時間=[11:00-17:00,17:00-22:00,11:00-22:00]
|
39
|
+
#シフト希望時間=[11:00-17:00,17:00-22:00,11:00-22:00,"希望無し"]
|
42
|
-
|
40
|
+
|
43
|
-
#シフト希望時間=[0,1,2]
|
41
|
+
#シフト希望時間=[0,1,2,9]
|
44
42
|
|
45
43
|
|
46
44
|
|
47
45
|
#aは社員
|
48
46
|
|
49
|
-
a=[5,[2,
|
47
|
+
a=[5,[2,0,2,2,2],0,1,3,"a"]
|
50
48
|
|
51
49
|
#bは社員
|
52
50
|
|
53
|
-
b=[
|
51
|
+
b=[3,[2,2,2,0,2],0,1,3,"b"]
|
54
52
|
|
55
53
|
#cは主婦
|
56
54
|
|
57
|
-
c=[
|
55
|
+
c=[2,[0,0,0,0,9],1,2,1,"c"]
|
58
56
|
|
59
57
|
#dはフリーター
|
60
58
|
|
@@ -62,11 +60,11 @@
|
|
62
60
|
|
63
61
|
#eは大学生(夕方)
|
64
62
|
|
65
|
-
e=[1,[1,
|
63
|
+
e=[1,[1,1,9,1,1],1,1,3,"e"]
|
66
64
|
|
67
65
|
#fは大学生(朝)
|
68
66
|
|
69
|
-
f=[2,[9,
|
67
|
+
f=[2,[9,2,9,2,0],1,1,2,"f"]
|
70
68
|
|
71
69
|
|
72
70
|
|
@@ -138,9 +136,9 @@
|
|
138
136
|
|
139
137
|
#1日目=[午前の必要人数,午後の必要人数]
|
140
138
|
|
141
|
-
d1=[2,2]
|
142
|
-
|
143
|
-
d
|
139
|
+
d1=[3,3]
|
140
|
+
|
141
|
+
d2=[2,3]
|
144
142
|
|
145
143
|
d3=[3,2]
|
146
144
|
|
@@ -230,12 +228,6 @@
|
|
230
228
|
|
231
229
|
|
232
230
|
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
231
|
d1gogo=[]
|
240
232
|
|
241
233
|
for i in range(day[0][1]): #1日目の午後のソートされたリストから必要人数分取る
|