Задачи на переливание удобно решать как запись состояний на бумаге. Для двух сосудов пишут пару чисел: сколько жидкости в первом и сколько во втором. После каждого действия пара меняется. Так видно, получен ли нужный объём и не превышена ли вместимость сосуда.
В упражнениях ниже есть неограниченный запас жидкости и место, куда можно вылить содержимое сосуда. Разрешены три действия: наполнить сосуд до краёв, опустошить его полностью или перелить из одного сосуда в другой, пока первый не опустеет либо второй не заполнится. Деления на стенках нет, поэтому нельзя остановить струю на произвольно выбранной отметке. Это мысленные задачи: всё решение выполняется карандашом на листе.
Начните с состояния, а не с догадки
Пусть сосуд А вмещает 5 литров, сосуд Б — 3 литра. Запись (5, 0) означает, что в А есть 5 литров, а Б пуст. Порядок чисел сохраняется во всём решении: сначала А, потом Б. Исходное состояние двух пустых сосудов — (0, 0).
Чтобы перелить жидкость из А в Б при состоянии (5, 1), посчитайте свободное место в Б. Оно равно 3 − 1 = 2 литра. После переливания Б заполнится, в А останется 5 − 2 = 3 литра: новое состояние (3, 3). Одно число нельзя менять отдельно от другого: сколько убыло в одном сосуде, столько же прибыло в другом.
Наполнение и опустошение записываются проще. Из (3, 0) наполнение Б даёт (3, 3). Из того же состояния опустошение А даёт (0, 0). В подписи к каждому переходу полезно писать действие словами: это помогает обнаружить скачок, для которого нет разрешённой операции.
Пример: получите 4 литра с сосудами 5 и 3 литра
Есть пустые сосуды А на 5 литров и Б на 3 литра. Нужно получить ровно 4 литра в А. Запишем каждый ход:
| Действие | Состояние (А, Б) |
|---|---|
| Оба сосуда пусты | (0, 0) |
| Наполнить А | (5, 0) |
| Перелить из А в Б | (2, 3) |
| Опустошить Б | (2, 0) |
| Перелить оставшиеся 2 литра из А в Б | (0, 2) |
| Снова наполнить А | (5, 2) |
| Долить Б из А до краёв | (4, 3) |
Последний переход стоит проверить отдельно. В Б уже 2 литра, до полной вместимости ему не хватает 1 литра. Этот литр переходит из А, поэтому в А остаётся 5 − 1 = 4 литра. Цель достигнута; выливать содержимое Б не требуется.
Если записать только «наполнить А, перелить, повторить», легко потерять те 2 литра, которые остались после первого переливания. Таблица сохраняет их на нужном шаге и показывает, почему в конце получается именно 4.
Упражнение: получите 2 литра с сосудами 4 и 3 литра
Сосуд А вмещает 4 литра, сосуд Б — 3 литра. Оба пусты. Получите ровно 2 литра в Б, пользуясь теми же тремя действиями. Попробуйте продолжить цепочку от (0, 0), прежде чем читать решение.
Решение:
- Наполнить Б: (0, 3).
- Перелить Б в А: (3, 0).
- Снова наполнить Б: (3, 3).
- Долить А из Б до краёв: (4, 2).
На последнем шаге в А было 3 литра и оставалось место для 1 литра. Из полного Б ушёл 1 литр; в нём осталось 2. Каждый сосуд в конечном состоянии находится в допустимых пределах: 4 из 4 и 2 из 3.
Упражнение: получите 1 литр с сосудами 7 и 4 литра
Сосуд А рассчитан на 7 литров, сосуд Б — на 4 литра. Оба пусты. Нужно оставить ровно 1 литр в А.
Решение. Наполните Б: (0, 4). Перелейте его в А: (4, 0). Ещё раз наполните Б: (4, 4). Теперь долейте А до краёв из Б. А не хватает 3 литров, поэтому из четырёх литров Б уйдут 3. Получится (7, 1).
Это состояние даёт 1 литр в Б, тогда как по условию он нужен в А. Продолжим законными ходами: опустошим А — (0, 1), перельём 1 литр из Б в А — (1, 0). Теперь цель выполнена. Промежуточный результат можно использовать, но перед остановкой обязательно сверяйте не только число, но и сосуд, в котором оно должно находиться.
Как искать следующий ход, если цепочка не видна
Сначала посмотрите, каким может быть действие непосредственно перед целью. Чтобы в сосуде оказалось количество меньше его вместимости, часто нужно долить другой сосуд до краёв и оставить остаток в первом. В примере с 5 и 3 литрами итог (4, 3) возник потому, что Б не хватало ровно 1 литра, а А содержал 5.
Затем подумайте, как создать нужный остаток или свободное место. Для состояния (4, 3) перед последним переливанием подходило (5, 2): в Б свободен 1 литр. Чтобы получить (5, 2), надо было сохранить 2 литра в Б и наполнить А. Так можно рассуждать от цели назад, а записывать окончательное решение — от пустых сосудов вперёд.
Если вариантов много, заведите список уже полученных пар. Например, для сосудов 4 и 3 литра состояние (3, 0) было достигнуто после переливания полного Б в А. Если та же пара встретится снова, дальнейшие ходы из неё будут теми же. Повторять её в поиске не помогает.
Когда цель недостижима
Не каждое число можно получить. Допустим, есть сосуды А на 6 литров и Б на 4 литра. Оба пусты, а цель — ровно 3 литра в любом одном сосуде. При разрешённых действиях это невозможно.
Здесь причина видна без перебора длинных цепочек. В начале в обоих сосудах по 0 литров — чётное количество. При наполнении добавляется 6 или 4 литра, при опустошении такое же чётное количество убирается. При переливании до опустошения одного сосуда или заполнения другого количество перемещённой жидкости тоже остаётся чётным, если до хода оба количества были чётными. Значит, после любого числа ходов в каждом сосуде будет чётное количество литров. Число 3 нечётное, поэтому цель не достигается.
Такой вывод зависит от правил именно этой задачи. Если бы на сосудах были деления и разрешалось остановить переливание на отметке 3 литра, задача была бы другой. В бумажном решении сначала читают разрешённые действия, а уже потом строят цепочку.
Проверьте готовое решение по трём вопросам
Во-первых, каждое состояние должно укладываться в вместимость: для сосудов на 5 и 3 литра запись (4, 4) невозможна. Во-вторых, каждый переход должен соответствовать одному разрешённому действию. Из (5, 0) нельзя сразу получить (4, 1): у Б ещё есть место, а остановить переливание после одного литра в наших условиях нельзя. В-третьих, финальная запись должна совпадать с целью по числу и по месту.
Родитель может проверять решение, закрыв столбец действий и восстановив его по соседним парам. Если между двумя состояниями непонятно, что произошло, стоит добавить пропущенный ход или исправить числа. Такой же приём — записывать все варианты и отсеивать невозможные — пригодится в других нестандартных задачах для детей.
Частые вопросы
Можно ли налить жидкость сразу в оба сосуда?
В наших задачах один ход — одно действие с одним сосудом или одно переливание между сосудами. Если нужно наполнить оба, запишите два последовательных состояния. Так легче проверить каждый переход.
Считается ли решением, если нужный объём получился не в том сосуде?
Только если условие разрешает любой сосуд. В упражнении с сосудами на 7 и 4 литра промежуточный 1 литр оказался в Б, а цель требовала 1 литр в А. Поэтому понадобились ещё два хода.
Нужно ли искать самое короткое решение?
Только когда это прямо сказано в условии. В этих упражнениях достаточно законной цепочки, которая приводит к цели. Если требуется минимум ходов, сравнивайте все достигнутые состояния по числу шагов и не пропускайте возможные действия.