Решение задач на переливание векторным способом
Задачи на переливание — один из видов старинных задач. Они возникли много веков назад, но до сих пор вызывают интерес у любителей математики и их часто можно встретить в олимпиадных заданиях для 5–6-х классов.
Суть этих задач сводится к следующему: имея несколько сосудов разного объема, один из которых наполнен жидкостью, требуется разделить ее в каком-либо отношении или отлить какую-либо ее часть при помощи других сосудов.
В сборниках занимательных задач предлагается способ решения с помощью таблиц, где в первом столбце указываются объемы данных сосудов, а в каждом следующем — результат очередного переливания. Таким образом, количество столбцов (кроме первого) показывает количество необходимых переливаний. Существенным недостатком этого способа решения является отсутствие четкого алгоритма действий, невозможность предвидеть ближайшие шаги. Составлять такие таблицы можно довольно долго, так и не придя к нужному результату.
Механизировать решение этих задач с помощью «умного» шарика предложил Я.И. Перельман в книге «Занимательная геометрия». Для каждого случая предлагалось строить бильярдный стол особой конструкции, длины двух сторон которого численно равны объему двух меньших сосудов. Далее, из острого угла этого стола вдоль одной из сторон нужно «запустить» шарик, который по закону «угол падения равен углу отражения» будет сталкиваться с бортами стола, показывая тем самым последовательность переливаний. На бортах стола нанесена шкала, цена деления которой соответствует выбранной единице объема. В результате движения шарик либо ударяется о бортик в нужной точке (тогда задача имеет решение), либо не ударяется (тогда считается, что задача решения не имеет).
Предложим еще один способ решения задач на переливание — с помощью векторов. Построим прямоугольную систему координат хОу (для решения потребуется только первая четверть). На оси Ох отметим точки, координаты которых кратны объему а одного из двух меньших сосудов. Через отмеченные точки проведем пунктиром прямые
х =
а, х = 2а, ..., х = kа. Эти прямые покажут нам, что сосуд объемом а полон и его нужно опорожнить. На оси Оу отметим точку, координата которой численно равна объему второй из меньших емкостей, то есть b. Проведем через нее пунктирную прямую у = b, которая поможет нам определить точки очередного наполнения второго сосуда. Наполнение емкости, объем которой отметили на оси Оу, будем показывать векторами, направленными вертикально вниз. Переливание из этого сосуда в тот, объем которого указан на оси Ох, изобразим векторами, направленными по диагонали вниз. И, наконец, опорожнение последней емкости будет выглядеть в виде вектора, направленного вертикально вверх. Для контроля рядом с концами векторов будем записывать остаток или то, что перелили. Если искомое число получим на оси Ох, то это количество жидкости, накопленной в сосуде объема
а,
если оно окажется на одной из вертикальных линий, то необходимая величина находится в сосуде объема b. Начерченные векторы являются последовательными шагами решения задачи.
Для примера решим задачу:
Разделить содержимое наполненной бочки в 12 ведер пополам при помощи бочек в 9 и 7 ведер.
Построим прямоугольную систему координат так, как описано выше. Вертикальный вектор, направленный вниз к метке 9 — это первый шаг: наполнение 9-ведерной бочки. Вектор 9–2 по диагонали вниз — переливание воды из 9-ведерной в 7-ведерную бочку. Метка 2 означает, что в средней (9-ведерной) бочке осталось 2 ведра воды. Так как меньшая емкость полна (мы дошли до пунктирной линии), то ее следует опорожнить, то есть вылить содержимое в 12-ведерную бочку — вектор направлен вертикально вверх. Следующий ход — вылить оставшиеся в средней бочке 2 ведра воды в меньшую (вектор 2–2). Поскольку вектор показывает на ось Ох, то это означает, что 9-ведерная бочка пуста, ее нужно вновь наполнить (вектор направлен вертикально вниз до метки 9). Продолжаем при помощи средней бочки наполнять меньшую (вектор по диагонали), оценивая каждый раз при наполнении одной из них содержимое другой и указывая оставшееся число ведер рядом с концом вектора. Продолжая действовать таким образом, скоро обнаруживаем в средней бочке необходимые 6 ведер воды. Эту задачу можно решить иначе, поменяв местами обозначения для 7- и 9-ведерной бочек на координатных осях. Тогда решение достигается с помощью большего количества шагов.
Проанализировав решение задачи, приходим к выводу, что задачу можно решить, если выполняется равенство: с =│nа –
mb│, где с — искомое количество жидкости, а и b — данные объемы двух меньших сосудов,
n и m — количество наполнений сосудов с объемом соответственно а и b.