Составь алгоритм для Водолея с вместимостью сосудов 3, 5 и 11 мер, после выполнения которого в сосуде A оказывается ровно 1 мера воды, а сосуды B и C будут пустыми. Дай алгоритму имя налей в A 1 меру.
Теперь, используя алгоритм налей в A 1 меру как вспомогательный, составь алгоритм, в котором не больше 4 команд и в результате выполнения которого сосуды A и B оказываются пустыми, а в сосуде C налито ровно 2 меры воды.
Для проверки работы своих алгоритмов заполняй такую таблицу:
| Команда | A (3 меры) | B (5 мер) | C (11 мер) |
|---|---|---|---|
| ___ | ___ | ___ | ___ |
По правилам Водолея команда «наполни» заполняет сосуд до краёв, «вылей» опустошает его, а переливание продолжается до опустошения исходного сосуда или заполнения принимающего.
Сначала наполним A и перельём все
Снова наполним A. При переливании в B из A уйдут только
Опустошим B. Сосуд C не используем, поэтому его содержимое сохраняется. Это позволяет повторно вызвать алгоритм, даже если в C уже есть вода.
алг налей в A меру
дано | A и B пусты; содержимое C произвольное
надо | в A мера, B пуст, содержимое C сохранено
нач
наполни A
перелей из A в B
наполни A
перелей из A в B
вылей B
кон
Для первого запуска все сосуды пусты:
| Команда | A ( |
B ( |
C ( |
|---|---|---|---|
| Начало | |||
| наполни A | |||
| перелей из A в B | |||
| наполни A | |||
| перелей из A в B | |||
| вылей B |
Теперь дважды отмерим по
алг две меры в C
дано | все сосуды пусты
надо | A и B пусты, в C меры
нач
налей в A меру
перелей из A в C
налей в A меру
перелей из A в C
кон
| Команда | A ( |
B ( |
C ( |
|---|---|---|---|
| Начало | |||
| налей в A |
|||
| перелей из A в C | |||
| налей в A |
|||
| перелей из A в C |
Основной алгоритм содержит ровно
Вспомогательный алгоритм: наполни A; перелей из A в B; наполни A; перелей из A в B; вылей B.
Основной: налей в A
