НИИ МЛЯ
(прокрастинация. профанация. прострация.)
На главную Отдел ИИ Отдел ПА Отдел РП Лаборатория ЕН Лаборатория ЭХ
Лаборатория естественных наук

О связи диофантовых уравнений и переливании сосудов

(Принято к публикации 2014-10-21)

Пусть нам даны два сосуда объема V1 и V2. Нужно узнать, можно ли получить в одном из этих сосудов объем V только переливаниями до наполнения, выливаниями, наполнениями до края. В общем, классическая задача вида "Даны сосуды 3л и 5л. Нужно получить 4л.".

Возникла гипотеза, что эту задачу можно свести к разрешимости в целых числах диофантова уравнения:

V = xV1 + yV2
Как известно, разрешимость последнего уравнения эквивалентна делимости V на НОД(V1, V2).

Однако, как свести одну задачу к другой, мы сразу не придумали, поэтому предлагаем проверить эту гипотезу прямым экспериментом:

8л / 8л 8л / 8л 0 л

А уже проведя серию экспериментов и выработав алгоритм, гарантирующий решение, достаточно легко сообразить, как связана задача переливания сосудов с диофантовыми уравнениями.

Действительно, алгоритм здесь достаточно прост. Пусть для определенности V2 < V1.

  1. Наполняем второй сосуд.
  2. Переливаем в первый сосуд.
  3. Повторяем шаги 1-2 до тех пор, пока первый сосуд не наполнится.
  4. Выливаем всё из первого сосуда и переливаем оставшуюся часть из второго сосуда в первый.
  5. Продолжаем шаги 1-4 до получения результата.
Полученные k2 наполнений второго сосуда и k1 выливаний из первого сосуда как раз и обращают вышеупомянутое диофантово уравнение в верное равенство:
V = k2 V2 - k1 V1