TGViewer
Алгоритмы - Собеседования, Олимпиады, ШАД Алгоритмы - Собеседования, Олимпиады, ШАД @algoses · 12.1K subscribers
Post #89 6.58K
Задача от который посыпалось много аналитиков.
Условия задачи выше.

Решение:
Весь разбор к сожалению не влезет, я рекомендую смотреть код и читать короткий разбор.

Нам нужно number_of_trials=10000 промоделировать ситуации.

Функция barber_shop_simulation будет моделировать приходы клиентов, а также время стрижки каждого клиента. Мы это можем сделать так как знаем как распределены эти вероятности.

Функция calculate_closing_time посчитаем время закрытие. Для этого будем рассматривать каждого клиента по очереди и будет отдавать его мастеру, который раньше всего освобождается. В конце концов мы будем знать когда освободятся все мастера, вернем разницу между этим числом и 16*60 (16:00 в минутах)

Функция check_insufficient_seating будет возвращать True если хотя-бы один клиент будет стоять во время ожидания, так как всего 5 мест для ожидания.
Для решение мы первых трех клиентов отдадим мастерам, следующие 5 добавим в очередь (сказав что они сели) теперь рассмтрим следующего клиента, если он приходит раньше чем освободится один мастер, мы вернем True, так как ему придется стоять, иначе мы из очереди достаем левого человека (то есть того кто сидит на 1 месте) и отдаем мастеру. В общем просто моделируем эту ситуацию. По коду можно легко понять этот момент.
Вероятность того, что хотя бы один посетитель за день будет шестым в очереди и на него не хватит кресла в зоне ожидание - доля случаев когда функция check_insufficient_seating вернет True.

Функция calculate_waiting_time_12_00 посчитаем время ожидания человека который придет в 12:00. Для решения мы должны просто оставить всех людей который пришли до 12:00 и вызвать функцию calculate_closing_time, которая будет считать уже не до 16:00 а до 12:00.
Так как мы моделируем number_of_trials раз мы получим массив чисел длины number_of_trials, среди них мы должны вернуть 95 квантиль (np.quantile)


Код в комментариях.
  • ❤‍🔥 3
  • ❤ 2
  • 👍 2
More from @algoses
  1. Sep 28, 2026Собеседование по алгоритмам в ШАД 2026 На прикрепленном фото задачи, которые спрашивали в…
  2. Sep 27, 2026Ты поступишь в ШАД Старт набора на наши ШАДовские курсы: без воды и лишней теории, 3 месяц…
  3. Sep 26, 2026Задача с собеседования в Zoho Даны две строки: s и goal. Верните true, если можно поменять…
  4. Sep 25, 2026Как залететь в хфт и стать миллионером, залутать сочную зумершку? Обсудим в новом ролике.…
  5. Sep 23, 2026Задача с собеседования в Zoho Даны две строки s и t. Определите, являются ли они изоморфны…
  6. Sep 19, 2026Полный цикл отбора в Spectral на SWE (HFT) Недавно рассказывали про отбор в Fast Forward н…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →