вторник, 15 января 2008 г.

Убейте кто-то эту улитку...

Есть резинка длины 1 метр. По ней ползет улитка. Скорость улитки 1см в минуту. Ползет она от левого конца резинки к правому. В конце каждой минуты резинка растягивается и ее длина увеличивается на 1 метр. "Растягивание" происходит мгновенно и равномерно по всей длине.
Вопрос: доползет ли улитка до правого конца резинки?
Понятно, что улитка живет вечно и не устает.


Бурное обсуждение на хабре. Общественное мнение все больше склоняется к тому что улитка доползет.

Основная мысль доползающих в том что относительное расстояние до финиша уменьшается, и этот ряд похоже сходится...

концентрированный вариант рассуждений:
В первую минуту улитка проползёт 1/100 пути. Во вторую 1/200, в третью 1/300, в N-ю 1/(N*100), выносим 1/100, получаем гармонический ряд. Далее формулы.


ок, с тем что в N-ю минуту улитка проползет 1/(N*100) пути на ту минуту я согласен. Но тут неочевидные рассуждения, неочевидные поскольку все эти 1/N пути неочевидны сами по себе.

Попробуем рассуждения более понятные хотя и менее простые (не все что просто так же просто понимается).

Пусть f(x) - функция разности между длиной пути и расстоянием пройденным улиткой. Ежели улитка проползает весь путь значит эта функция где-то равна 0.
Длина пути через n шагов будет 100*n (измеряем в самнтиметрах, т.е. в "шагах" улитки).
Улитка за n шагов преодолеет U(n) = (U(n-1)+1)*(n+1)/n сантиметров. Формула у нас получилась реккурентная. И ее можно свернуть. Получится U(n) = (n+1)sum(1..n)(1/i);
(здесь sum(1..n)- сумма по i от 1 до n)
Итоговая формула -

f(n) = 100*n - (n+1)sum(1..n)(1/i);


sum(1..n)(1/i) - гармонический ряд. Заменим его по формуле приближения гармонического ряда. Получим(заменим n на х для "привычности"):

f(x) = 100*x - (x+1)ln(x) - С;


Несложно увидеть (с калькулятором в руках) что формула по началу возрастающая. Значит если улитка доползет до финиша в каком-то месте формула должна стать убывающей. Место это называется точкой перегиба. Определяется это место как место где производная этой функции равна 0. Посмотрим есть ли такие места...
f'(x) = 100 - ln(x) - (x+1)/x;

точно рассчитывать лень но видно что f'(x) == 0 где-то в районе exp(99).

Ок, перегиб есть... более того видно что после перегиба f(x) остается убывающей и дальше.
Осталось доказать что f(x) действительно доходит до 0 а не скажем асимптотически приближается к 0. Ну да это задачка на дом.

Комментариев нет: