Это классическая логическая задача, решение которой заключается в том, чтобы на каждом этапе не оставлять наедине тех, кто может съесть друг друга. Ключ к решению — не только перевозить пассажиров вперед, но и забирать одного из них обратно на определенном этапе. Вот пошаговый алгоритм переправы: Шаг 1: Переправа козы Старик берет козу и перевозит ее на другой берег.
- Результат: Волк и капуста остались на первом берегу (они в безопасности), коза — на втором. Старик возвращается один.
Шаг 2: Переправа волка или капусты Старик берет волка и перевозит его на другой берег.
- Проблема: Теперь на втором берегу волк и коза. Если старик уйдет за капустой, волк съест козу.
- Решение: Старик оставляет волка на втором берегу, но забирает козу обратно на первый берег.
Шаг 3: Переправа капусты Старик высаживает козу на первом берегу и берет с собой капусту. Он перевозит ее на второй берег к волку.
- Результат: На втором берегу теперь волк и капуста (они в безопасности). Коза осталась на первом берегу. Старик возвращается один.
Шаг 4: Финальная переправа Старик берет козу и перевозит ее на второй берег.
- Итог: Все четверо (старик, волк, коза и капуста) успешно переправились и никто никого не съел.
Краткая схема перемещений:
- Туда: Коза (Волк и Капуста ждут).
- Обратно: Пусто.
- Туда: Волк (Капуста ждет).
- Обратно: Коза.
- Туда: Капуста (Волк ждет).
- Обратно: Пусто.
- Туда: Коза.
Хотите, чтобы я разобрал другую версию этой задачи, например, с тремя каннибалами и тремя миссионерами?