Конкурс «КИО 2022»
Потоки (2 уровень)

 Эта задача взята из книги В.И.Арнольда "Математическое понимание природы", которую всем участникам конкурса КИО полезно изучить.

 Будем изучать отделение от водного потока его рациональных частей*. 

Задача состоит в том, чтобы отделить от потока (величины 1) его часть в размере 19/53. Начать работу нужно с клика мышкой на рабочем поле и её движением для построения основного русла (первого участка).

Поток можно делить на две равные части. То же можно делать с получившимися частями. Потоки не могут пересекаться. Маленькие потоки можно объединять в один поток. Также (и это важно - см. книгу Арнольда) можно создавать петли, отводя рукав потока в ответвления основного русла, ведущие к этому рукаву. 

Критерии оценки решений (упорядочены по убыванию их важности при сравнении решений):

1) Нужно постараться отделить нужную часть потока как можно точнее. Соответствие результата условию будет демонстрироваться в процентах.

2) Если поток отделен точно, то лучшим будет решение с меньшим числом разделений потока. 

3) Из двух решений с одинаковым числом разделений лучшим будет то, в котором меньше общее число отделенных потоков (лучше, чтобы их было два). 

4) Следующий параметр, по которому сравниваются решения - число петель. Без петель (отвод части потока "назад") решить задачу не получится, но их число нужно минимизировать.

5) Последний параметр - число слияний потоков. Чем меньше их будет, тем лучше. 

* Замечание. В книге Арнольда речь шла о людском потоке, часть которого перенаправляется обратно. Чтобы работать с произвольными дробями, в задаче использована интерпретация сплошным потоком, однако отвод воды от рукавов в основное русло (петли) возможен только при подкачке воды на более высокий уровень, как это иногда делается в фонтанах. 

______________________________________________________________________________________________

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

Для слияния потоков нужно конец очередного ответвления подвести (примерно) к середине другого ответвления (любого, кроме первого участка). Так же осуществляется создание петли - отличие лишь в том, что ответвление подводится к одному из ответвлений основного русла, ведущего к этому рукаву.

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

Лучшее решение сохранится автоматически. Также можно сохранять промежуточные решения.

______________________________________________________________________________________________

______________________________________________________________________________________________

Авторы программного модуля:

Владислав Яндринский и Михаил Жегалин,

Санкт-Петербургский государственный электротехнический университет "ЛЭТИ", факультет компьютерных технологий и информатики