Разместили? А теперь слушайте задачу:
У Вас есть два сосуда, один объёмом 5 литров, а другой объёмом 8 литров. Вы можете наливать сосуды до края какой-то жидкостью (будьте осторожны, возможно, что она едкая или ядовитая) из крана. Вы можете выливать жидкость из сосуда в технологическую раковину. Вы можете переливать жидкость из сосуда в сосуд так, что либо в первом сосуде закончится жидкость, либо второй наполнится до краёв (что произойдёт ранее). Ваша задача — отмерить 2 литра жидкости.Значит так. Надо написать программу на любом выбранном Вами языке программирования, которая бы выводила на естественном языке (ну лучше на русском, конечно) алгоритм действий по наливанию и выливанию так, чтобы получить 2 литра, причём этот алгоритм должен состоять из наименьшего числа действий. Пишите программу сразу универсальной, получающей на вход объёмы двух сосудов и количество литров, которое необходимо отмерить (все объёмы являются строго целыми числами). Программа должна вывести алгоритм или написать, что решения нет.
В комментариях пишите ответ и давайте ссылку на программу. Также сообщайте, какой язык программирования использовали (я не всегда могу распознать), а также очень прошу замерить чистое время программирования, если это возможно. Буду категорически благодарен. За себя скажу, что я реализовал решение на языке Haskell (кто-то подумал об ином?), затратив на это 1.5 часа чистого времени. За эти полтора часа я не только написал программу, но и пооптимизировал её, порефакторил и полностью откомментировал в стиле haddock.
Если что-то непонятно в условии, вопросы можете задавать в комментариях. На вопросы отвечаю открытыми комментариями, а комментарии с ответами скрываются. Открытие всех комментариев произойдёт в понедельник 05.03.2012 примерно в 08:00 утра. Дерзайте!
Также напоминаю, что любой вопрос по конкурсу, его организации, про функциональное программирование вообще, про язык Haskell и другие прекрасные языки Вы всегда можете задать на официальном форуме ФП(ФП).
Дополнение 1, 11:29 02.03.2012: в связи с вопросами в комментариях условиях задачи уточнены (на суть уточнения не влияют). Прошу ознакомиться повторно.
Дополнение 2, 08:05 05.03.2012: комментарии раскрыты, начинаем проверку общности реализованных программ.
Дополнение 3, 07:45 06.03.2012: конкурс закрыт, начинаю подведение итогов.
Дополнение 4, 07:15 07.03.2012: результаты опубликованы.
Предыдущие конкурсы:
1. Август 2011. Задача о возрастах детей математика: условие, результаты.
2. Сентябрь 2011. Кто на ком женат: условие, результаты.
3. Октябрь 2011. Задачи о переправах: условие, результаты.
4. Ноябрь 2011. Задача о надёжности кода: условие, результаты.
5. Декабрь 2011. Задача о конструировании чисел из чисел: условие, результаты.
6. Январь 2012. Расшифровка кода на языке Haskell: условие, результаты.
7. Февраль 2012. Мат в один ход: условие, результаты.
Если вы хотите дополнительно отблагодарить организатора (то есть меня), но не знаете как, то вам сюда. Собранные благодарности пойдут прямиком в ФП(ФП).