質問編集履歴

3

2020/01/10 08:29

投稿

yoshipiman
yoshipiman

スコア6

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

従業員のシフト希望

2020/01/10 08:29

投稿

yoshipiman
yoshipiman

スコア6

test CHANGED
File without changes
test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
  #cは主婦
54
54
 
55
- c=[2,[0,0,0,0,9],1,2,1,"c"]
55
+ c=[3,[0,0,0,0,9],1,2,1,"c"]
56
56
 
57
57
  #dはフリーター
58
58
 

1

各従業員のシフト希望

2020/01/09 05:31

投稿

yoshipiman
yoshipiman

スコア6

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,2,2,2,2],0,1,3,"a"]
47
+ a=[5,[2,0,2,2,2],0,1,3,"a"]
50
48
 
51
49
  #bは社員
52
50
 
53
- b=[4,[2,2,2,2,2],0,1,3,"b"]
51
+ b=[3,[2,2,2,0,2],0,1,3,"b"]
54
52
 
55
53
  #cは主婦
56
54
 
57
- c=[3,[0,0,0,0,9],1,2,1,"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,9,1,9,1],1,1,3,"e"]
63
+ e=[1,[1,1,9,1,1],1,1,3,"e"]
66
64
 
67
65
  #fは大学生(朝)
68
66
 
69
- f=[2,[9,0,9,9,0],1,1,2,"f"]
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
- d2=[3,3]
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日目の午後のソートされたリストから必要人数分取る