Задача о переливании воды

У вас есть два ведра:

3 литра
5 литров

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

1. Наполнить 3-литровое ведро.
2. Перелить в 5-литровое.
3. Повторить. В 5-литровом останется 1 литр.
4. Вылить 5-литровое, перелить 1 литр в него.
5. Наполнить 3-литровое и перелить в 5-литровое → получится 4 литра.
1. Наполнить 5-литровое ведро.
2. Перелить в 3-литровое (останется 2 л в 5-литровом).
3. Вылить 3-литровое.
4. Перелить 2 л из 5-литрового в 3-литровое.
5. Наполнить 5-литровое и долить в 3-литровое до краёв (1 л).
6. В 5-литровом останется 4 литра.
Наполнить оба ведра и слить половину из 5-литрового.
Наполнить 3-литровое ведро и вылить его в 5-литровое три раза.

Правильное решение (вариант B):

  1. Наполните 5-литровое ведро. → (0, 5)
  2. Перелейте из него в 3-литровое. → (3, 2)
  3. Вылейте воду из 3-литрового. → (0, 2)
  4. Перелейте оставшиеся 2 л из 5-литрового в 3-литровое. → (2, 0)
  5. Снова наполните 5-литровое. → (2, 5)
  6. Долейте из 5-литрового в 3-литровое до полного (нужно 1 л). → (3, 4)

Теперь в 5-литровом ведре ровно 4 литра!

Это классический алгоритм, основанный на том, что НОД(3,5) = 1, поэтому можно отмерить любой объём от 1 до 8 литров.