Мне нужно создать программу 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
Программы на Python
1727463038
Anonymous
Мне нужно создать программу 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)
Подробнее здесь: [url]https://stackoverflow.com/questions/79032594/problems-for-a-program-with-a-logic-to-place-elements-in-a-list-table-if-n-succe[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия