Мне нужно создать программу Python, которая помещает high_priority_order = "Order B" в Schedule_table, следуя следующей логике:
Это означает, что мне нужно добавить 2 часа подряд в столбце «Машина 3» таблицы Schedule_table,
затем добавьте 2 часа подряд в столбец «Машина 2» таблицы Schedule_table,
затем добавьте 3 последовательных часа часов в столбце «Машина 4» таблицы Schedule_table,
а затем добавьте 1 час в столбец «Машина 1» таблицы Schedule_table.
j_column_order = [['Machine 3', 2], ['Machine 2', 2], ['Machine 4', 3], ['Machine 1', 1]]
и другие необходимые данные...
# What should be filled into the cells of the schedule_table
highest_priority_order = "Order B"
# The table where the cells should be filled in the available spaces
schedule_table = [
['Hour', 'Machine 1', 'Machine 2', 'Machine 3', 'Machine 4', 'Deadline'],
[1, 'Order A', None, None, None, None],
[2, 'Order A', None, None, None, None],
[3, 'Order A', None, None, None, None],
[4, None, 'Order A', None, None, None],
[5, None, 'Order A', None, None, None],
[6, None, None, 'Order A', None, None],
[7, None, None, 'Order A', None, None],
[8, None, None, None, 'Order A', None],
[9, None, None, None, None, None],
[10, None, None, None, None, 'Order A'],
[11, None, None, None, None, 'Order B'],
[12, None, None, None, None, None],
[13, None, None, None, None, 'Order C'],
[14, None, None, None, None, 'Order D'],
[15, None, None, None, None, None]
]
Поместите часы в ячейки, где указано «Нет» в соответствующих столбцах машин, указанных в j_column_order, гарантируя, что часы для каждого показания могут быть размещены последовательно в указанный столбец.
schedule_table = [
['Hour', 'Machine 1', 'Machine 2', 'Machine 3', 'Machine 4', 'Deadline'],
[1, 'Order A', None, 'Order B', None, None],
[2, 'Order A', None, 'Order B', None, None],
[3, 'Order A', None, None, None, None],
[4, None, 'Order A', None, None, None],
[5, None, 'Order A', None, None, None],
[6, None, 'Order B', 'Order A', None, None],
[7, None, 'Order B', 'Order A', None, None],
[8, None, None, None, 'Order A', None],
[9, None, None, None, 'Order B', None],
[10, None, None, None, 'Order B', 'Order A'],
[11, None, None, None, 'Order B', 'Order B'],
[12, None, None, None, None, None],
[13, None, None, None, None, 'Order C'],
[14, None, None, None, None, 'Order D'],
[15, None, None, None, None, None]
]
Ниже приведен мой код, но он дает сбой, поскольку не учитывает ограничение, согласно которому рабочее задание не может быть запланировано одновременно на двух или более разных машинах одновременно.
def find_consecutive_slots(table, column, duration):
"""Finds consecutive empty slots in the column of the table."""
slots = []
for row in range(1, len(table)):
if table[row][column] is None:
if len(slots) > 0 and slots[-1] != row - 1:
slots = [] # Reset if not consecutive
slots.append(row)
if len(slots) == duration:
return slots
return None
def assign_order(table, j_column_order, order):
"""Assigns the order to available slots in the table following j_column_order."""
for machine, required_hours in j_column_order:
column = table[0].index(machine) # Find the column of the machine
consecutive_slots = find_consecutive_slots(table, column, required_hours)
if consecutive_slots:
for row in consecutive_slots:
table[row][column] = order
assign_order(schedule_table, j_column_order, highest_priority_order)
for row in schedule_table: print(row)
Подробнее здесь: https://stackoverflow.com/questions/790 ... if-n-succe
Проблемы для программы с логикой размещения элементов в таблице списка, если n последовательных элементов могут быть пом ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Исправление логики размещения последовательных элементов в столбце таблицы списка.
Anonymous » » в форуме Python - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Создание программы для размещения системы координат на изображении кубика Рубика
Anonymous » » в форуме Python - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Создание программы для размещения системы координат на изображении кубика Рубика
Anonymous » » в форуме Python - 0 Ответы
- 21 Просмотры
-
Последнее сообщение Anonymous
-