Циклы · 26 из 26
Бочки каскадом
С крыши дачи вода стекает в бочку под водостоком. Ниже по склону стоят ещё бочки, каждая соединена с соседней шлангом у дна, а из последней шланг идёт на грядки. Переполненная бочка переливается через край в следующую. Хочется понять, что будет с бочками в ливень: какая наполнится, какая перельётся и сколько воды окажется в каждой.
Что сделать
Просчитайте ливень минута за минутой: дождь в верхнюю бочку, вода по шлангам вниз, лишнее — через край в следующую. Порядок внутри минуты — в «Подробных правилах».
Что приходит
dozhd— сколько литров дождя приходит в верхнюю бочку за каждую минутуemkosti— сколько литров вмещает каждая бочка, сверху внизdolya— какую часть своей воды каждая бочка за минуту отдаёт по шлангу в следующую
Что вернуть
Список: уровни всех бочек в начале и после каждой минуты — списками, округлёнными до сотых.
Допишите функцию kaskad в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
Две бочки по 100 литров, шланги отдают половину, дождь — по 10 литров две минуты. Первая минута: в верхней 10 литров, половина уходит вниз — [5.0, 5.0]. Вторая: в верхней 15, а нижняя отдаёт половину своих пяти на грядки и получает половину верхних пятнадцати — [7.5, 10.0].
kaskad([10, 10], [100, 100], 0.5)
[[0.0, 0.0], [5.0, 5.0], [7.5, 10.0]]
В начале все бочки пусты. Каждую минуту, по порядку:
- в верхнюю бочку (первую в списке) приходят литры дождя этой минуты;
- шланги работают ВСЕ РАЗОМ: каждая бочка отдаёт dolya своих литров — столько, сколько в ней сейчас, до работы шлангов, — следующей бочке; последняя отдаёт на грядки, эта вода уходит;
- переливы — сверху вниз, по одной бочке: если в бочке больше её ёмкости, лишнее переливается в следующую (из последней — на землю), а в ней остаётся ровно ёмкость. Вода, перелившаяся в бочку, может перелиться и из неё — в ту же минуту. В ответ — уровни в начале и после каждой минуты, каждый round(…, 2); считается без округления. Бочек хотя бы одна, dolya — от 0 до 1.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.