Задание №4535.
Построение математической модели. ЕГЭ по информатике
Файл, необходимый для выполнения задания: ссылка для скачивания.В файле содержится информация о совокупности
N вычислительных процессов, которые могут выполняться параллельно или последовательно.
Будем говорить, что процесс
B зависит от процесса
A, если для выполнения процесса
B необходимы результаты выполнения процесса
A. В этом случае процессы
A и
B могут выполняться только последовательно.
Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор процесса (ID), во втором столбце таблицы – время его выполнения в миллисекундах, в третьем столбце перечислены с разделителем «;» ID процессов, от которых зависит данный процесс. Если процесс независимый, то в таблице указано значение 0.
Типовой пример организации данных в файле.ID процесса B | Время выполнения процесса B (мс) | ID процесса(-ов) A |
1 | 4 | 0 |
2 | 3 | 0 |
3 | 1 | 1; 2 |
4 | 7 | 3 |
Определите
минимальное время, через которое завершится выполнение всей совокупности процессов, при условии, что все независимые друг от друга процессы могут выполняться параллельно.
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла.
Пояснение:
Приведем решение данного задания на языке программирования Python. Для этого необходимо скопировать содержимое Excel файла в текстовый документ с расширением .txt.
def find_time(process): if process[2] == [0]: return process[1] else: max_time = 0 for i in process[2]: if max_time < find_time(data[i - 1]): max_time = find_time(data[i - 1]) return max_time + process[1]
data = [] processes = open("input.txt").read().splitlines()[1:] for i in processes: process = [int(i.split('\t')[0]), int(i.split('\t')[1]), [int(i.strip()) for i in i.split('\t')[2].split(';')]] data.append(process) time = [] for i in range(len(data)): time.append((i + 1, find_time(data[i]))) print(max(time, key=lambda x: x[1])) |
Таким образом,
307 — минимальное время, через которое завершится выполнение всей совокупности процессов, при условии, что все независимые друг от друга процессы могут выполняться параллельно.
Показать ответ
307
Источник: ФИПИ. Открытый банк тестовых заданий
Сообщить об ошибке
Тест с похожими заданиями