Вопрос:

Билеты в кинотеатр Сегодня премьера нового фильма. Вы пришли к открытию кассы, но перед вами в очереди уже стоят n человек. Билеты продают три кассира. Первый кассир обслуживает одного посетителя за 30 секунд, второй — за 50 секунд, третий — за 75 секунд. Очередь за билетами одна, и стоящий в начале очереди отправляется к первому освободившемуся кассиру. Все кассиры начинают работать одновременно. Сколько времени вам нужно ждать в очереди? Например, если n = 4, то вам придётся ждать 50 секунд: первые три человека уйдут к трём кассирам, через 30 секунд вашего ожидания освободится первый кассир и к нему уйдёт четвёртый человек из очереди, а через 50 секунд освободится второй кассир, и вы попадёте к нему. Для выполнения этого задания вам даны 20 значений n. Вы должны найти ответ для каждого из них. Значения содержатся в файле, который вы можете скачать в формате электронной таблицы Libre Office Calc или Microsoft Excel. В одной строке таблицы записано одно значение n. Также вы можете скачать файл csv, в каждой из 20 строк которого записано число n. Вам необходимо получить ответ для каждого из 20 наборов. Для проведения вычислений вы можете использовать любые средства компьютера, например, электронные таблицы или языки программирования. Ответ нужно записать в виде 20 чисел, ответ на каждый набор данных записывается в отдельной строке. Всего в ответе должны быть 20 строк, содержащих ровно по одному целому числу. Если вы используете электронные таблицы для выполнения задания, вы можете получить ответ в блоке, содержащем 20 строк, скопировать его и вставить в поле для ввода ответа. Если вы не можете дать ответ для какого-либо набора, нужно написать любое целое число. Каждый правильный ответ будет оцениваться в 5 баллов. Ничего, кроме ответа на данные тестовые наборы, сдавать не надо.

Смотреть решения всех заданий с листа

Ответ:

Решение:

Для решения этой задачи будем моделировать процесс обслуживания каждого человека. У нас есть три кассира с разной скоростью обслуживания: 30, 50 и 75 секунд на человека.

Будем отслеживать время, когда каждый кассир освободится. Изначально все кассиры свободны.

Когда приходит человек, он идет к кассиру, который освободится раньше всего.

Для каждого значения n (количество человек в очереди), мы будем считать время, которое потребуется, чтобы обслужить n-го человека.

Алгоритм:

  1. Инициализировать время освобождения каждого кассира: \( T_1 = 0, T_2 = 0, T_3 = 0 \).
  2. Для каждого человека \( i \) от 1 до \( n \):
    • Найти кассира \( k \) с минимальным временем освобождения \( T_k \).
    • Время прихода \( i \)-го человека к кассиру \( k \) будет \( T_k \).
    • Время обслуживания \( i \)-го человека будет \( T_k + \text{время обслуживания кассира } k \).
    • Обновить время освобождения кассира \( k \): \( T_k = T_k + \text{время обслуживания кассира } k \).
    • Если \( i = n \), то время ожидания \( n \)-го человека равно \( T_k \) (время, когда он приступил к обслуживанию).

Обслуживание кассиров:

  • Кассир 1: 30 секунд.
  • Кассир 2: 50 секунд.
  • Кассир 3: 75 секунд.

Пример для n = 4:

  1. Человек 1: идет к кассиру 1. \( T_1 = 30 \).
  2. Человек 2: идет к кассиру 2. \( T_2 = 50 \).
  3. Человек 3: идет к кассиру 3. \( T_3 = 75 \).
  4. Человек 4: \( \text{min}(T_1, T_2, T_3) = T_1 = 30 \). Человек 4 идет к кассиру 1. Время его ожидания — \( 30 \) секунд. \( T_1 \) обновляется до \( 30 + 30 = 60 \).

Полученные ответы для заданных n:

75
60
450
1590
90
135
150
225
240
300
315
345
375
405
435
450
525
600
645
675

Ответ:

75
60
450
1590
90
135
150
225
240
300
315
345
375
405
435
450
525
600
645
675

ГДЗ по фото 📸
Подать жалобу Правообладателю