Вопрос:

Задача 6 Семья ночью подошла к опасному мосту. Папа может перейти его за 1 минуту, мама за 2, сын за 5, а бабушка за 10 минут. У них есть один маленький фонарик. Мост выдерживает только двоих. Если переходят двое, то они идут с меньшей из их скоростей. Двигаться по мосту без фонарика нельзя. Светить издали нельзя. Носить друг друга на руках нельзя. Как им перейти мост за 17 минут? Так звучит классическая задача, и вы вполне можете найти её в интернете, а можете решить сами. У вас 2 вопроса: 1. Записать алгоритм решения классического варианта задачи с помощью команд исполнителя Перевозчик. 2. За какое минимальное время вся семья сможет перейти мост, если папа может перейти его за 1 минуту, мама за F минут, сын за С минут, а бабушка за Y минут?

Ответ:

Решение Задачи 6

Часть 1: Алгоритм решения классической задачи (17 минут)

Условия:

  • Папа (П) - 1 мин.
  • Мама (М) - 2 мин.
  • Сын (С) - 5 мин.
  • Бабушка (Б) - 10 мин.
  • Фонарик один.
  • Мост выдерживает двоих.
  • Скорость определяется самым медленным.

Цель: Перевести всех за 17 минут.

Ключевая идея: Самые быстрые должны быть теми, кто переносит фонарик туда и обратно, чтобы минимизировать время.

Алгоритм:

  1. Папа и Мама переходят мост. (Время: 2 мин. Итого: 2 мин. Папа и Мама на ПБ. Фонарик у Мамы.)
  2. Папа возвращается с фонариком. (Время: 1 мин. Итого: 3 мин. Папа на ЛБ. Мама на ПБ. Фонарик у Папы.)
  3. Бабушка и Сын переходят мост. (Время: 10 мин. Итого: 13 мин. Бабушка и Сын на ПБ. Папа на ЛБ. Фонарик у Сына.)
  4. Мама возвращается с фонариком. (Время: 2 мин. Итого: 15 мин. Мама на ЛБ. Бабушка и Сын на ПБ. Фонарик у Мамы.)
  5. Папа и Мама переходят мост. (Время: 2 мин. Итого: 17 мин. Папа и Мама на ПБ. Бабушка и Сын на ПБ. Фонарик у Мамы.)

Все перешли за 17 минут.

Часть 2: Минимальное время с переменными F, C, Y

Скорости:

  • Папа (П) - 1 мин.
  • Мама (М) - \( F \) мин.
  • Сын (С) - \( C \) мин.
  • Бабушка (Б) - \( Y \) мин.

Предполагаем, что \( 1 < F < C < Y \) для сохранения логики классической задачи.

Алгоритм (оптимизированный):

  1. Папа и Мама переходят мост. (Время: \( F \) мин. Итого: \( F \) мин.)
  2. Папа возвращается с фонариком. (Время: 1 мин. Итого: \( F + 1 \) мин.)
  3. Сын и Бабушка переходят мост. (Время: \( Y \) мин. Итого: \( F + 1 + Y \) мин.)
  4. Мама возвращается с фонариком. (Время: \( F \) мин. Итого: \( F + 1 + Y + F = 2F + Y + 1 \) мин.)
  5. Папа и Мама переходят мост. (Время: \( F \) мин. Итого: \( 2F + Y + 1 + F = 3F + Y + 1 \) мин.)

Это один из вариантов. Рассмотрим другой, где быстрые переносят фонарик.

  1. Папа и Мама переходят мост. (Время: \( F \) мин. Итого: \( F \) мин.)
  2. Папа возвращается. (Время: 1 мин. Итого: \( F + 1 \) мин.)
  3. Папа и Сын переходят мост. (Время: \( C \) мин. Итого: \( F + 1 + C \) мин.)
  4. Папа возвращается. (Время: 1 мин. Итого: \( F + 1 + C + 1 = F + C + 2 \) мин.)
  5. Папа и Бабушка переходят мост. (Время: \( Y \) мин. Итого: \( F + C + 2 + Y \) мин.)

Для минимизации времени, самые быстрые (Папа и Мама) должны как можно больше раз переносить фонарик.

Оптимальный алгоритм (предполагая \( F \) - время Мамы, \( C \) - время Сына, \( Y \) - время Бабушки, и \( 1 < F ≤ C ≤ Y \) ):

  1. Папа и Мама переходят мост. (Время: \( F \) мин. Все на ПБ. Фонарик у Мамы.)
  2. Папа возвращается. (Время: 1 мин. Итого: \( F+1 \) мин. Папа на ЛБ. Фонарик у Папы.)
  3. Сын и Бабушка переходят мост. (Время: \( Y \) мин. Итого: \( F+1+Y \) мин. Сын и Бабушка на ПБ. Фонарик у Бабушки.)
  4. Мама возвращается. (Время: \( F \) мин. Итого: \( F+1+Y+F = 2F+Y+1 \) мин. Мама на ЛБ. Фонарик у Мамы.)
  5. Папа и Мама переходят мост. (Время: \( F \) мин. Итого: \( 2F+Y+1+F = 3F+Y+1 \) мин. Все на ПБ.)

Важно: Если \( F \) очень мало (например, \( F=1 \)), то \( P=1, M=1 \). Тогда можно сделать так:

  1. П+М (1 мин)
  2. П назад (1 мин)
  3. С+Б (C мин)
  4. М назад (1 мин)
  5. П+М (1 мин) = 1+1+C+1+1 = C+4

В общем случае, если \( 1 < F ≤ C ≤ Y \):

Минимальное время = \( 3F + Y + 1 \)

Если \( F \) - самое большое время (например, \( 1 < C < Y < F \)), то:

  1. П+С (C мин)
  2. П назад (1 мин)
  3. П+Б (Y мин)
  4. П назад (1 мин)
  5. П+М (F мин) = C+1+Y+1+F = C+Y+F+2

Самый универсальный подход - работать от конца, отбрасывая самые большие времена.

Для общего случая \( 1, F, C, Y \) (предполагая \( 1 ≤ F ≤ C ≤ Y \)):

  1. 1 и F переходят (F минут).
  2. 1 возвращается (1 минута).
  3. C и Y переходят (Y минут).
  4. F возвращается (F минут).
  5. 1 и F переходят (F минут).

Общее время: \( F + 1 + Y + F + F = 3F + Y + 1 \).

Ответ: 1. Алгоритм: 1. Папа и Мама переходят мост. 2. Папа возвращается. 3. Сын и Бабушка переходят мост. 4. Мама возвращается. 5. Папа и Мама переходят мост. 2. Минимальное время: \( 3F + Y + 1 \) минут (при условии \( 1 < F ≤ C ≤ Y \)).

Похожие