Разбавление спирта
Две наполненные почти до краёв бочки стоят рядышком. В одной сто литров спирта 96%, в другой - сто литров воды. Имея одну литровую кружку, нужно получить в одной из бочек раствор спирта 40%.
Начнём с того, что перельём литр спирта в воду. Это первый перелив. Потом кружечку назад. Это второй.
После какого по счёту перелива нужно остановиться?
Начнём с того, что перельём литр спирта в воду. Это первый перелив. Потом кружечку назад. Это второй.
После какого по счёту перелива нужно остановиться?
Ответ
Рейтинг: : Ход решения: Число переливов=0; Концентрация1=0.96; Концентрация2=0;
Циклически повторяем:
Увеличить Число переливов на 1;
если нечётное Число переливов, то Концентрация2=(Концентрация1+100*Концентрация2)/101,
а если чётное, то Концентрация1=(Концентрация2+99*Концентрация1)/100
пока Концентрация2 не станет больше 0.4.
Смотрим каким стало число переливов.
Остановиться нужно после сто семьдесят девятого переливания.
Циклически повторяем:
Увеличить Число переливов на 1;
если нечётное Число переливов, то Концентрация2=(Концентрация1+100*Концентрация2)/101,
а если чётное, то Концентрация1=(Концентрация2+99*Концентрация1)/100
пока Концентрация2 не станет больше 0.4.
Смотрим каким стало число переливов.
Остановиться нужно после сто семьдесят девятого переливания.
+30
Комментарии:
Николай, 2008-12-07
Ответ то неправильный... если остановиться нужно после 79 то общее количество литров равно 179 в которых 96 литров спирта так как он был 96%... тогда концетрация спирта будет 96/179 * 100%=53,6%.. неверно...
Николай, 2008-12-07
сорри неправильно прочитал... 179... тогда общее 279.. и конц 96/279 * 100%=34,4%... все равно неверно
Дмитрий, 2009-02-14
96/х *100%=40%
х =240 перелив.
Gerkon, 2009-02-28
Дмитрий, ход Ваших рассуждений, как и ответ вызывают большие сомнения. Откуда у Вас взялось число 96?<br>
Можно только предполагать, что Вы подразумеваете что в ста граммах спиртового раствора содержится 96 грамм спирта и 4 грамма воды. В таком случае почему Вы делите 96 на икс совершенно непонятно. Ответ может и правильный - не знаю, ща буду рассуждать вслух. Но почему Вы тогда делите 96 на число переливаний, остаётся только догадываться.
Gerkon, 2009-02-28
Пусть бочка №1 - содержит 96%-й спирт, а бочка №2 - дистиллированную воду.<BR>
1. Зачёрпываем литр из первой бочки.<BR>
Это мы зачерпнули 960 грамм спирта и 40 грамм воды. В литрах это 0,96 л. спирта и 0,04 л. воды<BR>
2. Вливаем содержимое кружки в бочку с водой и размешиваем. Возникает вопрос, скольки-процентный раствор спирта получился в бочке номер два?<BR>
Рассуждаем так: всего во-второй бочке жидкости теперь 101 литр. Из них 100 + 0,04 = 100,04 л. воды и 0,96 л. спирта. Х = 100 * 0,96 / 100,04 = 0,959616%.<BR>
Итого мы получили, что во второй бочке теперь раствор, в котором спирта менее 1 процента. Это значит, что 100 грамм этого раствора содержит:<BR>
- Воды = 100 - 0,959616 = 99,04384 мл<BR>
- Спирта = 0,959616 мл.<BR>
Соответственно если теперь зачерпнуть литр раствора из бочки №2, то в кружке окажется 990,4384 мл. воды и 9,59616 мл. спирта, что в литрах будет = 0,9904384 л. воды и 0,00959616 спирта.<BR>
Теперь встаёт вопрос о том, сколько же воды и сколько спирта осталось в бочке №1, после того, как мы зачерпнули из неё литр раствора?<BR>
Подсчитать не трудно. Изначально в 100 литрах жидкости содержалось 96 литров спирта и 4 литра воды. После того, как мы зачерпнули оттуда нашу первую кружку в бочке №1 осталось:<BR>
- Спирта = 96 - 0,96 = 95,04 л.<BR>
- Воды = 4 - 0,04 = 3,96 л.<BR>
Вливаем содержимое кружки в бочку №1. В результате в ней оказывается:<BR>
- Спирта = 95,04 + 0,00959616 = 95,04959616 л.<BR>
- Воды = 3,96 + 0,9904384 = 4,9504384 л.<BR>
Проверяем, насколько мы допустили погрешность в вычислениях:<BR>
Спирт + Вода = 95,04959616 + 4,9504384 = 100,00003456. У нас получился объём на 0,04 мл. больше чем положено. Это составляет 4 /10 в 5 степени процентов.<BR>Таким мизерным процентом можно в данных условиях спокойно пернебречь.<BR>
Теперь нужно вычислить скольки-процентный раствор получился в первой бочке.<BR>
Глядя на последнюю сумму можно сказать, что получился практически 95%-й раствор.
Первый цикл переливаний закончен. Первое переливание изменило раствор второй бочки на 1 процент, второе тоже на 1 процент. Примерно. Теперь если провести вторую итерацию цикла и при этом получится, что процент будет тоже столь сильно приближён к 1, то становится понятно, что для первой бочки уменьшение концентрации происходит за 2 переливание (влить в первую - влить во-вторую), а для первой бочки, за 1. Таким образом все нечётные переливания придутся на вторую бочку, а чётные - на первую. Теперь возникает вопрос, в какой из бочек окажется 40%-й раствор быстрее.<BR>
Одна итерация цикла содержит 2 переливания и она изменяет концентрацию раствора на 1 процент каждой из двух бочек. После 40-й итерации цикла во-второй бочке окажется 40%-й раствор спирта, а в первой бочке = 96 - 40 = 56%-й раствор спирта.<BR>
НО! Для второй бочки переливаний нужно на одно меньше, чем для первой. ПОэтому, если полностью пренебречь погрешностями, и если после второй итерации цикла концентрация раствора в обоих бочках снова поменяется на 1 процент, то нам понадобится 39,5 итераций, что составит 80-1=79 переливаний. И в бочке номер два окажется 40%-й раствор спирта.<BR>
Если же после второй итерации цикла концентрация раствора в каждой из бочек изменится не на 1 процент, а существенно будет от него отличаться, то нам понадобится вычислить скорость изменения процента за 1 итерацию. А лучше всего написать программу, которая будет прогонять цикл раз за разом и считать переливания до тех пор, пока в одной из бочек ни окажется нужный процент спирта.<BR>
Уверен, что число переливаний будет близким к 80.<BR>
А вообще, ребят, не парьтесь. Возьмите трёхлитровый бутыль, влейте в него литру спитра и 1,5-2 литра воды - концентрация для питья будет что-надо
lepra, 2009-07-28
Считал способом, аналогичным предложенному в ответе. Считал в экселе. Получил, что на 176 шаге во второй бочке получим чуто более 40% спирта, что с учетом низкой точности вычислений совпадает с приведенным ответом.
Да просто Ришат., 2009-11-07
За такое разбавление вас ,друзья,ну,наверное,поругают,очень мягко тговоря.
DRomanov, 2010-03-24
без экселя я считал так: ((100+1)/100)^x=0.96/0.40 x=ln(2.4)/ln(1.01) округляем до 88 - это пар переливаний. всего 176.
Прохожий, 2011-04-09
Математики не знают, но суммарный объем спирта и воды меняется при смешивании и в итоге в 2-х бочках окажется меньше 200 литров. Разведение спирта это наука!
Dron, 2011-05-27
В задаче ответ правильный потребуется 179 переливаний (если пренебречь контракцией). У DRomanovа формула для нахождения числа переливаний не верная т.к. при бесконечном числе переливаний концентрация в бочках должна выровняться т.е. стать равной 48%. А если по его формуле считать предел отношения x стремящийся к бесконечности, то получится 0%! Куда весь спирт делся?!
P.S тем более переливание во вторую бочку должно быть нечетным.
дядя Ваня, 2012-03-24
трубы горят, а они все считают... эээээ
Евгений, 2015-09-04
кто придумалэту задачу, подъебнул всех!
даже при условии, что бочку спират разлить поровну на две бочки! Не получиться разлить на 40% концентрации спирта!
96%/2=48%
Зелензмей, 2020-02-06
А я до прочтения ответа в уме прикинул и получил число переживаний примерно 82.Потому что после второго перелива получим в спиртобочке концентрат 95% во второй 1%раствор
yyyyy, 2020-05-01
Компьютер утверждает, что понадобится 175 переливаний
public static void main(String[] args) {
SpiritusDelution sd = new SpiritusDelution();
sd.go();
}
private void go() {
int volumeBarrel1 = 100;
int volumeBarrel2 = 100;
double spiritusBarrel1 = 96;
double spiritusBarrel2 = 0;
int counter = 0;
double spiritusCup = 0;
while (spiritusBarrel1 > 40 && spiritusBarrel2 < 40) {
counter++;
if(counter%2 != 0) {
spiritusCup = spiritusBarrel1/volumeBarrel1;
volumeBarrel1-=1;
volumeBarrel2+=1;
spiritusBarrel1-=spiritusCup;
spiritusBarrel2+=spiritusCup;
} else {
spiritusCup = spiritusBarrel2/volumeBarrel2;
volumeBarrel1+=1;
volumeBarrel2-=1;
spiritusBarrel1+=spiritusCup;
spiritusBarrel2-=spiritusCup;
}
System.out.println("Counter: " + counter);
System.out.println("spiritusBarrel1: " + spiritusBarrel1 + ". spiritusBarrel2: " + spiritusBarrel2);
}
System.out.println(counter);
}