Pull to refresh

Comments 178

UFO landed and left these words here
наверно все же доползет, растягивание перемещает улитку вперед)
но математически обосновать пока не получается)
математические надо рассмотреть два ряда на сходимость :)
Так как растягиваение резинки в два раза равносильно уменьшению скорости в два раза без изменения длины резинке. Получаем, то улитка проползёт см в первую минуту, 0.5 во вторую, 0.25 в третью и т.д. Итого, ряд сойдётся на 2 см. (Белым шрифтом)
Резинка растягивается не в два раза, а на один метр
Тогда (белым шрифтом) при сведении задачи к прошлой аналогичной улитка ползёт 1/1+1/2+1/3+...+1/n+... сантиметров. А этот ряд расходится и, значит, доползёт без проблем.
непонятно откуда такой ряд? в первую минуту проползла 1 см, он увеличился в два раза, стало 2, во вторую минуту еще сантиметр, стало 2см. При чем тут 1 + 1/2 + ...
Преобразование резинки «растягивание на 1 м» аналогично преобразованию скорости улитки уменьшение в n-1/n раз. То есть вместо того, чтобы растягивать резинку, я уменьшаю в нужное количество раз скорость улитки. Оттуда и такой ряд — это сколько улитка проползёт за первую, вторую и так далее минуты.
красиво. но не понимаю, почему растягивание аналогично уменьшению скорости. в каком смысле аналогично? что не изменяется при этом? по-моему, уж проще ряд написать, который получается при растягивании
Аналогично в смысле пропорционально улитка проползает одну сотую растянутой резинки это то же самое, что она проползёт нерастянутую с меньшей скоростью. Там у меня, кстати, не учтено, что то расстояние, которое она уже проползла, тоже увеличилось и ползти ей меньше надо, но на положительный ответ это не влияет. Хотя, я, может, и неправ где-то. Но пока такого не вижу.
Хотя всё учёл и замечание лишнее.
в задаче сказано что улитка ползёт со скоростью 1 см в минуту. с какой стати может меняться её скорость от растягивания? этого нет в условии.
Я просто свёл задачу к аналогичной. Рассуждения пользователя gimlis отлично дополняют мои рассуждения.
прочитал сначала. красиво.
главное что вопрос о конечности времени не стоит благодаря бессмертности.
спасибо
UFO landed and left these words here
Понравилась аналогия с отпусканием резинки :)
Если резинка именно растягивается (и положение улитки на нем также смещается) - ей достаточно проходить даже 50,1 м в час.
Если резинка абстрактно удлиняется добавлением еще одного метра справа - неа, не долезет :)
Резинка абстрактно растягивается, а не удлиняется, а это вовсе не одно и то же...
Проверил на компьютере. За первые миллиард минут не доползает :)
но уползает довольно далеко :)
Ответ не ботаника, но практика! =)
Ага, проползает более двухсот тысяч километров.
Если улитка миллиард раз растянуть улитку, то от такого растяжения она порвётся. Так что если что-то и доползёт до финиша, это уже будет не улитка. Садюги :)
UFO landed and left these words here
всё дело в бесконечности: для любой длины резинки существует номер шага улитки, на котором она проходит это расстояние.

точно так же доказывается, что если на каждом шаге в коробку класть 10 шариков и при этом доставать лишь 1, то, повторяя эти шаги бесконечно, получим пустую коробку.
а докажите второе утверждение?
хм, какое? про коробку и шарики?
для каждого шарика номер N в бесконечности существует шаг M, на котором этот шарик изымут из коробки.
да, но пока он наступит, в коробке еще добавятся шары
это совершенно неважно, т.к. любой положенный в коробку шарик рано или поздно (т.е. в бесконечности) будет изъят.
Вы ставите вопрос как "не останется шаров вообще", а этого вы доказать не можете. Вы только что доказали только то, что рано или поздо _любой_ шар будет изъят, а не _все_ шары будут изъяты.
UFO landed and left these words here
UFO landed and left these words here
Вообще-то это был Ахилес. Голиаф был в мифах другой народности.
да по поводу коробки однозначно что-то напутали :)
UFO landed and left these words here
Это все равно что класть туда 9. Пустой коробка не станет никогда.
Про коробку это сильно :) Странное у Вас представление о математике
длина резинки - функция от времени,
путь пройденый улиткой - функция от времени,
выражаем, приравниваем, ищем время, при котором путь пройденый улиткой равен дине резинки.
у меня время получилось отрицательным, т.е. улитка всю резинку ни когда не проползет.
UFO landed and left these words here
я все правильно, вроде понял.
длина резинки первый (начальный метр) плюс сумма накопившихся метров за время растягивания.
путь пройденый улиткой - сумма растянутых сантиметров, причем чем раньше прошла улитка сантиметр, тем большее количество раз он был растянут в результате общего растягивания резинки.
все ОК.
UFO landed and left these words here
не факт, там задача решена в базисе растягивающейся резинки, при переносе решения в абсолютный базис решение может выродиться.
UFO landed and left these words here
вы не имеете права делать такое преобразование ("отпускать резинку") до тех пор пока не докажете его однозначную обратимость. то есть ваше решение может существовать на "отпущенной резинке", но при рассмотрении из абсолютного базиса, решение может проваливаться в бесконечность. я предлагаю не подменять задачу и не использовать сомнительных предположений. постройте ряд от времени описывающий движение улитки в абсолютном базисе и сравните его с линейным ростом длины резинки.
UFO landed and left these words here
UFO landed and left these words here
логарифмическая линейка тоже вроде одномерная, это к вопросу о базисах, однако преобразования позволяет получать очень интересные.
в условиях задачи время не ограничено конечным значением, это накладывает ограничения на методы, используемые при решении.
модель резинки без проблем растягивается и сжимается, не спорю, а вот путь пройденый улиткой... тут еще надо посмотреть.
UFO landed and left these words here
я к приведенным рядам ни чего против не имею.
цитирую: когда мы отпустим резинку она уменьшится в n+1 раз...
что произходитпи этом? - замена базиса: А(n)=F(n)/(n+1), дальше вы рассматриваете задачу относительно сжатых величин и ни где не доказыаете, что A(n)*(n+1)=F(n), а это свойство функций нам ни кто не гарантировал на сколько я знаю.
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
о этом и речь, вы расширающееся пространство преобразуете некоторым образом, назначаете ему линейные свойства, решаете в нем задачу, а потом утверждаете, что при обратном преобразовании решение сохранится и, более того, не выродится.
Нет не доползет! (в математике можно делить отрезок до бесконечности)
Если перейти к пределам, то при времени стремящемся к бесконечности расстояние между улиткой и концом резинки будет стремиться к нулю.
UFO landed and left these words here
а я вот очень хочу увидеть решение без выписывания формул
Оно есть в самом начале. И звучит как "если ползет - значит доползет" :)
пожалуйста:
фактически движение идет по принципу "шаг вперед, два назад"
тот шаг, который вперед имеет статичный размер, тот, который назад со временем уменьшается до 1/бесконечность
мне кажется здесь по шагам расписать можно, без матана :)
длина увеличивается на 1 метр раз в 60 секунд, значит
до первого удлинения улитка пройдет

60 см, сразу после удлинения, пройденый путь увеличится на 60/100=60 см
т.е. пройдено 120/200
далее, пройдем еще 60:
180/200, но тут настало удлинение пройденного пути: 180/200=90 см
т.е
180+90=270/300
далее, за пол-минуты прикончим оставшееся расстояние...

или я не прав?
UFO landed and left these words here
UFO landed and left these words here
Получил следующее:
Вычислим процентное соотношение пройденного расстояния улиткой в отрезок времени t (количество пройденных минут, t>0).
Оно равно: пройденное расстояние / длина резинки (в момент, когда улитка проползла, а резинка не увеличилась), т.е. t / 100*t = 1/100 получили, что улитка по отношению к длине резинки стоит на месте => не проползет.

Щас ещё подумаю, более математически попробую расписать.
Оштбка, проползает-то она не t а , больше т.к. резинка растягивается равномерно, т.е. она всё таки движется вперёд, и рано или поздно она достигнет такого момента, что оставшееся расстояние будет меньше 1 см и одним марш броском достигнет конца резинки.
Понятнее будет, если рассматривать, как изменяется расстояние до финиша (белый цвет)


__________до растяжения_-_после растяжения
-----------------------------------------------------------
1 мин.____99____________- 99+99/100
2 мин.____98+99/100_____- 98+99/100+(98+99/100)/100
...
Это, конечно, будет очень большой промежуток времени... но конечный )
Отличная задачка для садистов :) даже если не знать ответ ей можно кого-нибудь помучать :)
Но я конечно же против насилия :)
извиняюсь сразу за возможно глупый вопрос,
но откуда может взяться какое-то приблизительное время, если ряд расходящийся? на бесконечности только доползёт. разве нет?
Нет. Ряд расходящийся, а значит на бесконечности равен бесконечности. man гармонические числа
Поясню, как решал:
Считаем улитку точкой, а растягивание резинки - идеальным растяжением, сохраняющим пропорции вдоль резинки.
Тогда за первую минуту улитка проползёт 1/100 длины резинки. После растяжения резинка станет 2 метра в длину, но улитка останется в 1/100 от левого края (помните, пропорции сохраняются?).
За вторую минуту проползёт ещё 1/200 длины, итого 1/100 + 1/200. Опять растяжение, теперь длина резинки - 3 метра.
За третью минуту проползёт ещё 1/300 длины, итого 1/100 + 1/200 + 1/300.
Тут уже понятно, что после n-ой минуты улитка будет в 1/100 + 1/200 + ... + 1/(100*n) от левого края. То есть, имеем ряд [(1/100) * (сумма(1/i) при i = 1..n)].
Ряд (сумма(1/i) при i = 1..n) расходится, его сумма при n->+∞ стремится к +∞ (это известно, но можно почитать тут), а значит, улитка доползёт.
По поводу времени: частичная сумма ряда (особенно, при больших n) хорошо приближается выражением ln(n), так что имеем уравнение
(1/100) * ln(n) = 1
ln(n) = 100
n = e100 (это примерно 2,69*1043 минут, что превышает предполагаемый возраст нашей Вселенной на много порядков :) )
Улитка дойдет.

пояснение: итерации:

минута: пройдено до расширения, пройдено после расширения, всего пройти
0: 0, 0, 100
1: a[0]+1,(a[0]+1)*2/1 [присвоим это a[1]], 200
2: a[1]+1,(a[1]+1)*3/2, 300
3: a[2]+1,(a[2]+1)*4/3, 400
---
n: a[n-1]+1, (a[n-1]+1)*(n+1)/n, n*100
---

lim лево/всего =
a[n] / ((n+1)*100)

a[n]=(a[n-1]+1)*(n+1)/n
a[0]=0;
обозначим n+1/n за k[n]
a[n]=(a[n-1]+1)*k[n]
a[n]= a[n-2]*k[n]*k[n-1]+k[n]*k[n-1]+k[n]
a[n]= a[n-3]*k[n]*k[n-1]*k[n-2] + k[n]*k[n-1]*k[n-2]+k[n]*k[n-1]+k[n]
a[n]= a[0]*k[n]*..*k[1]+ k[n]*..*k[1] + ... + k[n]
т.к a[0]=0, то:
a[n]= k[n]*..*k[1] + ... + k[n] = (n+1) + (n+1)/2 + ... + (n+1)/n = (n+1)*(1 + 1/2 + 1/3 +...+1/n)

вернемся к lim лево/всего =


лево = (n+1)*(1 + 1/2 + 1/3 +...+1/n)
всего = (n+1)*100

лево/всего = (1 + 1/2 + 1/3 +...+1/n) / 100

последовательность (1 + 1/2 + 1/3 +...+1/n) расходящаяся, следовательно улитка дойдет.
Этот пост для сугубо неверующих в посты garvarg и Power и требующих доказательств.
Написал бы красивее, да что-то теги не пашут.
Неужели так трудно все это представить образно, без тонн цифр?)
трудно без цифр, я вот не знаю как, потому что, все в итоге сводится к тому, что nln(n) в определенный момент станет больше, чем 100(n+1)
Ну возмите резинку не метра, а 2 см. Сути это не изменит. Вот улитка проползла в 1 заход половину. Резинка растянулась. Улитка так и осталась в середине и сделала еще один рывок. Вот она уже проползла еще см и уже не в середине резинки, а ближе к концу. Значит медлено, но верно, она доползет таким ходом до самого конца :)
доползет, так как резинка растягивается каждую минуту на одинаковое расстояние (по всей длине), а пройденый путь увеличивается в прогрессии. так я думаю :)
Улитка доползёт, мне кажется. Правда, математика относится к вещам, вылетающим из моей головы со сверхсветовой скоростью, но на уровне младшей школы выходит так:

1/99 -> 2/198
3/198 -> 4,5/295,5
5,5/295,5 -> 7,(3)/392,(6)

Вроде как отношение проползённого к непроползённому увеличивается, значит, дело времени.
устать не может по определению, но зае#$@ся ползти однозначно.
не доползет. лучше ей сразу вернуться. во! еще одна задача после кокого шага она не сможет вернуться? ;)
Да, убитой кармы не вернуть. Но все же...

доползет, так как правый конец резинки движется линейно а улитка с ускорением, учитывая растягивание резинки позади улитки, скорость будет расти от 1 см/мин в начале, 50,5 см/мин в середине резинки(не пути) и 101 см/мин в конце.

ну и в php:


$n=0;
$rezinka=100;
$ulitka=0;

do{

// собственный ход животного
$ulitka+=1;

// растяжение пройденого пути пропорционально всей резинке
$ulitka*=($rezinka+100)/$rezinka;

// правый конец резинки
$rezinka+=100;

$n++;

}while($rezinka>$ulitka);

echo "n: $n, y: $ulitka, r: $rezinka\n";
Интересно, какое ускорение будет придано улитке, если в момент t резинку отпустить?..
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here

public class ulitka {
public static void main(String[] args) {
int speed = 1; // Скорость 1 м/с
int length = 100; // длина резинки
int add = 100; // резинка вырастает на 1 м раз в час
int iter = 3600*365; // Количество итераций
double A = 0; // Положение улитки по оси резинки
int time = 1; // раз в минуту расстяжение
for(int i = 1; i<=iter; i++)
{
A += speed*time; // смещаем улитку
double k = A/length; // коэффициент, учитывающий, где окажется улитка после растягивания
length += add; // длина резинки вырастает
A = length*k; // и теперь улитка, с учетом растяжения, оказыалась здесь
double B = length - A; // выщитываем оставшееся расстояние
System.out.println(i + " - > мы тут: " + A + "; осталось ползти: " + B); //выводим на экран
}
}
}

Первые десять минут
«итерация 1 - > мы тут: 2.0; осталось ползти: 198.0
итерация 2 - > мы тут: 4.5; осталось ползти: 295.5
итерация 3 - > мы тут: 7.333333333333333; осталось ползти: 392.6666666666667
итерация 4 - > мы тут: 10.416666666666664; осталось ползти: 489.5833333333333
итерация 5 - > мы тут: 13.699999999999996; осталось ползти: 586.3
итерация 6 - > мы тут: 17.149999999999995; осталось ползти: 682.85
итерация 7 - > мы тут: 20.742857142857137; осталось ползти: 779.2571428571429
итерация 8 - > мы тут: 24.46071428571428; осталось ползти: 875.5392857142857
итерация 9 - > мы тут: 28.28968253968253; осталось ползти: 971.7103174603175
итерация 10 - > мы тут: 32.21865079365079; осталось ползти: 1067.7813492063492»

К концу дня
«итерация 3600 - > мы тут: 31566.523262168117; осталось ползти: 328533.4767378319»

Через год
«итерация 1314000 - > мы тут: 1.927087918161252E7; осталось ползти: 1.1212922081838748E8»
А теперь раздели расстояние пройденное на общее расстояние, на пример во второй итерации и тоже самое сделай на 6й итерации - значение увеличивается: след-но улитка приближается к концу а не удаляется.
я так и сделал. к данному моменту эклипс выкинул ошибку. Последними вычислениями были:
1073741820 - > 0.018333332867772837
1073741821 - > 0.014999999534439503
1073741822 - > 0.009999999534439504
1073741823 - > -4.6556049571044865E-10
1073741824
миллиард итераций он все таки вытянул.
при этом заметьте, что, если в начале этот коэффициент рос, то к концу он, почему-то, падает.
UFO landed and left these words here
почему я постоянно задачки с хабровские получаю практически ночью?! это какой-то эксперимент?
На n-ном шаге улитка проходит 1/100n (1/n процента) длины резинки. Чтобы улитка допозла за N шагов, сумма 1/n для n от 1 до N должна превысить достигнуть 100. Это рано или поздно случится - гармонический ряд расходится, но расходится он очень медленно - сумма первых 10^43 членов не достигает 100, поэтому не стоит пытаться писать код и оставлять его итерировать на ночь.
Сумма по 1/100n никогда не даст единицы. это ассимптотичная кривая, и ассимптота явно равна не единице. 1/100n -> (n->бесконечность) -> 0,0(1) вроде так
Не знаю, что Вы имеете в виду под "асимптотичной кривой", но сумма 1/n расходится к бесконечности, и это очень легко доказать:
1/2 >= 1/2
1/3 + 1/4 >= 2 * 1/4 = 1/2
1/5 + 1/6 + 1/7 + 1/8 >= 4 * 1/8 = 1/2
1/9 + ... + 1/16 >= 8 * 1/16 = 1/2
и так далее. Каждые следующие 2^n членов в сумме дают больше одной второй.
1/2 + 1/2 + 1/2 + ..., очевидно, расходится к бесконечности.
все верно...
тем временем приближаюсь к 50 миллионам итераций =)
Верно говорите.
Наврал я.
Получается, что улитке придется ползти что-то около 2^125 дней, что есть 8.507059173023462E37.
UFO landed and left these words here
Спасибо за задачу! Наконец и математики могут почувствовать себя умными людьми, решив задачу на хабре.
Улитка проползет эту резинку на 197 минуте...
в чем ошибка программы - если ответ не верный?
#!d:/Perl/bin/perl
$luje = 0; # проползла стартовое 0 метров
$vsego=1; #всего на каждом шаге стартовая длина 1 метр
$lost = $vsego; # осталось ползти старотвое равно всего ползти
open (FH, ">" , "ulitka.txt") || print "don\'t create file";
for ($i=1;$i
for ($i=1;$i<=200 ;$i++) {
$vsego=($vsego+1);
$luje = ($luje+0.01) + ($vsego/100);
$lost = $vsego-$luje;
$a=sprintf("После %d минуты\tДлина всего пути стала: %d\tУже проползла (с учетом растягивания после нее): %.3f\tОсталось ползти (с учетом растягивания до нее): %.3f\t\n",$i,$vsego,$luje,$lost);
print FH $a;
}
close FH;

После 1 минуты Длина всего пути стала: 2 Уже проползла (с учетом растягивания после нее): 0.030 Осталось ползти (с учетом растягивания до нее): 1.970
После 2 минуты Длина всего пути стала: 3 Уже проползла (с учетом растягивания после нее): 0.070 Осталось ползти (с учетом растягивания до нее): 2.930
После 3 минуты Длина всего пути стала: 4 Уже проползла (с учетом растягивания после нее): 0.120 Осталось ползти (с учетом растягивания до нее): 3.880
После 4 минуты Длина всего пути стала: 5 Уже проползла (с учетом растягивания после нее): 0.180 Осталось ползти (с учетом растягивания до нее): 4.820

....

После 193 минуты Длина всего пути стала: 194 Уже проползла (с учетом растягивания после нее): 191.070 Осталось ползти (с учетом растягивания до нее): 2.930
После 194 минуты Длина всего пути стала: 195 Уже проползла (с учетом растягивания после нее): 193.030 Осталось ползти (с учетом растягивания до нее): 1.970
После 195 минуты Длина всего пути стала: 196 Уже проползла (с учетом растягивания после нее): 195.000 Осталось ползти (с учетом растягивания до нее): 1.000
После 196 минуты Длина всего пути стала: 197 Уже проползла (с учетом растягивания после нее): 196.980 Осталось ползти (с учетом растягивания до нее): 0.020
После 197 минуты Длина всего пути стала: 198 Уже проползла (с учетом растягивания после нее): 198.970 Осталось ползти (с учетом растягивания до нее): -0.970
растягивание равномерно, но не непрерывно. раз в час.
Помоему это Гармонический числовой ряд деленный на 100 и все! следовательно улитка дойдет, т.к. он расходится!
Если резинка от трусов, то бесконечно она растягиваться не может, а улитка бессмертна — значит ДОПОЛЗЕТ
это трусы Дункана МакЛауда, так что резинка может растягиваться бесконечно
круто!!))) сколько всевозможных решений!!)) обожаю математику))

думаю проползёт, так как иначе глупо выглдела бы задача (резинка удлинняется бесконечно - на первый взгляд якобы не доползёт)

кроме того, как я вижу решение (без хитрых выкладок):
-улитка ползёт 1 см, проползла 1 см, осталось 99
-резинка удлинняется равномерно, то есть на данном шаге улитка проползла 2 см и осталось 198 - то бишь пропорционально
-ещё см, значит улитка двигается, а пройденная и оставшаяся часть удлинняются пропорционально, то есть как бы долго не удлиннялась резинка, улитка всегда перемещается к концу, пусть её перемещения уменьшаются с каждым разом всё сильнее (относительно общей длинны), но она движется

ответ: проползёт.
Рассуждения не совсем верные, бывают монотонно возрастающие, но сходящиеся ряды. В данном случае нужно построить ряд, а потом по признакам известным решить вопрос о сходимости.
доползёт:

растягивание пропорционально. через 1 час улитка проползёт 60 см, останется 40 см. резинка растягивается равномерно, следовательно эти оставшиеся 40 см превратятся в 80 см. (1m -> 2m)
ещё через час ей останется 20 см, затем резинка растянется равномерно, и 20 см превратятся в 30 см.(2m -> 3m)
оставшиеся 30 см животное преодолеет за полчаса.
итого, два с половиной часа и она сможет приступить к следующей задаче.
К большому сожалению улитки, резинка растягивается каждую минуту, а не каждый час.
точно :) тогда ряд считать надо
Судя по подсчётам, чем больше прошло времени тем улитка всё ближе и ближе к концу. Но надо не забывать про то что чем дальше тем туже она ползёт, и сё может свестись к тому что как бы ни старалась ползти улитка, её старания (пройденное растояние) в минуту будет бесконечно мало по отношению к общему пути пример тому результаты просчётов:

1 мин - 1.5% из 100%
2 мин - 1.83% из 100%
3 мин - 2.08% из 100%

Но вот уже к 50 тыс минуте ползти всё туже:
50044 мин - 11.4% из 100%
50045 мин - 11.4% из 100%
50046 мин - 11.4% из 100%
50047 мин - 11.4% из 100%

Увелечение процента пройденного пути всё замедляется и замедляется...
UFO landed and left these words here
Я единственно в чём ошибся это минуты с 0 считал, те, надо +1 к каждой минуте в моём результате.

А вообще считал простеньким скриптом (ни капли ни оптимизированным) который и привожу ниже:
';
}
?>
Тьфу ты... ещё раз код:


<?php
$spd_ulitko=1; //скорость улитки в минуту
$length_rezinko=100; //длина резинки
$length_plus=100; //резинка увеличивается какждую минуту на это значение
$length_path_ulitko=0;

echo 'Начинаем';

for ($i=0;$i<=3600;$i++){
$length_path_ulitko=$length_path_ulitko+$spd_ulitko; //минута началась и улитка проползла своё расстояние
// в соответствии со скоростью

$old_length_rezinko=$length_rezinko; //Это нам нужно будет
$length_rezinko=$length_rezinko+100; //Резинка растянулась
$length_path_ulitko=$length_path_ulitko*($length_rezinko/$old_length_rezinko);
//и в процентном соотношении к увелечению резинки
//улитка тоже двигается
echo 'Прошло времени: '.($i+1).' мин. ';
echo '['.round($length_path_ulitko,2).' см. из '.$length_rezinko.' см.]'.
' - ['.round((($length_path_ulitko*100)/$length_rezinko),2).'% из 100%]<br />';
}
?>
Наваял такую программу:

#include <stdio.h>

double calc( double n )
{
double res = 0.01;
double k = 1;
while ( k < n ) {
res = res * (k+1)/k + 1;
k++;
}
return res;
}

int main()
{
int n;
printf( "Enter n: " );
scanf( "%i", &n );
double l = calc( n );
printf( "%f meters (%f%%) passed.\n", l/100, 100 * ( n - 0.01 * l ) / n );
}
</code>

Владельцы мощных компьютеров могут проследить за динамикой движения улитки :)

P.S. за качество кода сильно не пинать, на C не писал очень давно.
видимо когда дойдёт до критически маленького шага в сторону увеличения пройдённого пути станет повышаться с таким же шагом, как и уменьшалась, т.е графически парабола должна получиться, эт значит, что она должна дойти )))
Доползет.
На 65536 минуте остается проползти 5788867,2637464 см.

Если решите уравнение:
t
СУММА(1+1/n)^n=100(t+1)
n=1

узнаете через какое время t.
Вот это да!
Теперь яндекс-директ и с искуственным интелеектом? Как он догадался о контексте "Зенон", если я сейчас упомянул это слово впервые?! :))
Я в детстве читал какой-то фантастический рассказ, о какой-то трубе, в которую заперли какого-то человека, а второй трубы конец оставили открытым. Но с каждым шагом в том направлении он (человек) уменьшался вдвое. Название не помню :/
UFO landed and left these words here
SUM(1/к) от 1 до n действително ассимтотически LN(н).

Но решавшими не учтен релативистский еффект! всем думать еше 2 часа
перед улиткой при каждом растяжении, растяжение стремиться к 0, соответственно улитка доползёт.
UFO landed and left these words here
>>>"Растягивание" происходит мгновенно и равномерно по всей длине.

откуда вы взяли метр?
каждый раз растяжение будет меньше предыдущего растяжения перед улиткой,
соответственно когда растяжение перед улиткой будет меньше 1 см, то длина пред улиткой будет стремиться к 0.
Не доползёт. Вроде так:
Пройденное расстояние относительно точки отсчёта от нулевой минуты: distance = minutes / 100;
Пройденное расстояние после удлинения резинки: realDistance = (minutes * 0,5) + distance;

Соответствующий быдло-код:

#include

void calc(unsigned long long int minutes)
{
std::cout
Получается, что улитка за бесконечное время бесконечно приблизится к концу резинки. Но на на самый конец так никогда и не выползет. Т.е с точки зрения математики не доползёт. Но с "практической" точки зрения можно задать достаточно малую, но конечную допустимую погрешность в положении улитки относительно конца резинки, по достижении которой, можно считать, что улитка таки доползла или дотянулась каким-то своим отростком и "зацепилась" за самый край : )
Ведь так?
Доползет она, обоснование математическое уже дали выше.
Это программерски не решается, проц не тянет столько вычислить за обозримое время.
Умозрительно легче уменьшать шаг улитки считая длину резинки неизменной. И если сумма шагов в пределе будет больше метра - то доползет. (Кстати ее покормят там?) ;)

Кто-нибудь скажет правильный ответ? Достала эта улитка. Нет бы как обычно на Фудзи... :)
Обозначим l(t) - расстояние от улитки до конца резинки в момент времени t (=0,1,2,3...) в сантиметрах, L(t) - длина резинки в момент времени t в см. Обозн. t-0 - момент времени непостредственно перед удлинением резинки, t+0 - сразу после. Имеем:
l(t+0)=l(t-0)*(L(t-0)+100)/L(t-0)) (1)
Кроме того,
l(t+1-0)=l(t+0)-1 (2)
Т.к. коэффициент удлинения (L(t-0)+100)/L(t-0) стремится к 1 при t стремящемся к бесконечности, то (1) в пределе растет бесконечно малыми шагами. А в (2) из этих бесконечно малых шагов постоянно вычитается единица. Таким образом, улитка дойдет до конца резинки.
Заменим условие про резинку на такое: на каждом шаге резинка перед улиткой растягивается на 1 метр. Тогда ваше рассуждение остаётся верным, но улитка, очевидно, не доползёт, потому что с каждой минутой конец резинки отдаляется от неё ровно на 99см.
Утверждение о том, что мое решение так же приложимо к предложенным вами условиям, неверно, т.к. (1) меняется на l(t+0)=l(t-0)+100.
Пока что не нахожу ошибки в своем решении
Так-то так, да не совсем. Условие меняется на l(t+0)=l(t-0)*k, где k = (L(t-0)-l(t-0)+100)/(L(t-0)-l(t-0)). Ваши рассуждения для этой ситуации можно полностью повторить.
Ну действительно, повторяя ваши слова: т.к. коэффициент удлинения (L(t-0)-l(t-0)+100)/(L(t-0)-l(t-0)) стремится к 1 при t стремящихся к бесконечности, то (1) в пределе растет бесконечно малыми шагами. Ну и т.д. Только здесь ещё нам понадобиться дополнительная оценка, что-то вроде l(t) < L(t)/10, чтобы слагаемое l(t-0) не сильно влияло на значение коэффициента k. В моих условиях это неравенство доказывается элементарно.
на 1-ой минуте процент пройденного пути будет составлять - 1%, на 2-ой 1.5%,
3: 1.3
4: 1.6
5: 1.5
6. 1.75
...
26: 1.92857
27: 1.86666
28: 1.93333

По приведённым цифрам видно что процент пройденного пути всегда увеличивается хоть и не на много. Улитка дойдёт до конца резинки.

P.S. Процент пройденного пути будет быстрее увеличиваться после того как улитка пройдёт половину пути.
>>По приведённым цифрам видно что процент пройденного пути всегда увеличивается хоть и не на много. Улитка дойдёт до конца резинки.

неправильный вывод, из увеличения процента не следует, что когда-то процент будет 100%, может ряд сойдется к 50?
пусть резинка не растягивается а каждую минуту улитка ползет в 10 раз меньше
1я минута - 1.0
2я - 1.1
3я - 1.11

процент тоже увеличивается, но до метра (100см) никогда не доползет.
Задачка, как мне кажется, похожа на задачу о том, какое расстояние пролетит муха, летая между поездами.

Расстояние, пройденное улиткой l = 1 cm * t min.
Расстояние до конца ленты (в направлении двежения улитки): l = 50 cm * t min + 100 cm.

Тогда не доползет.
Подытоживая, можно сказать, что все молодцы - улитка спасена!
Если без формул ->

До середины резинки:
1) С каждым новым шагом улитка приближается к середине, причем приращение с шагом уменьшается - стремится к 0. Тем не менее, она ее достигает. Также, с каждым шагом конец резинки удаляется от улитки.

После середины:
2) Улитка уже приближается к концу, причем приращение с каждым шагом увеличивается.
так а почему она достигает середины?
Рассматриваем отрезок до середины. Каждую минуту происходит увеличение отрезка на 50 см - пропорционально пройденный путь и оставшийся. Длина всего отрезка до середины на n минуте составляет (n*50)+50 см. После выполненного движения. Т.е. пропорцию считаем относительно этой величины на текущую минуту.

§ - улитка.
Показываем расстояние в см.

1 мин.
Движение (Д) - 1...§...49 | (2/98) - пройдено/осталось в %, до середины (+2%)
Увеличение (У) - 2...§...98

2 мин.
Д - 3...§...97 | (3/97) + 1%
У - 4,5...§...145,5

3 мин.
Д - 5,5...§...144,5 | (3,66/96,34) + 0,66%
У - 7,33...§...192,67

4 мин.
Д - 8,33...§...191,67 | (4,165/95,835) + 0,505%

и т.д.

Т.е. движение к середине есть, но приращение пути будет уменьшаться с количеством шагов. Чтобы достичь середины потребуется ой как много итераций. (Цифры где-то выше в постах)
О, Улитка! Взбираясь к вершине Фудзи, можешь не торопиться...
Там на вершине Фудзи улиток полно и так.
(С) Пелевин
janisha или кто-либо еще могут объяснить мне ошибку в рассуждениях, приведенных чуть выше?
Нет. Пост, начинающийся словами "Обозначим l(t) - расстояние от улитки до конца резинки в момент времени t"
там уже есть комментарий rsa с указанием на ошибку
А такие ситуации:

1. После первого шага расстояние в процентном соотношении до финиша будет фиксированным на любом шаге. Т.е. до финиша 98% от длины резинки.
2. После первого шага расстояние до финиша всегда будет фиксированным, т.е. 99 см.

Верно ли? + математическое обоснование )
Всё очень просто. Основная иллюзия того что Улитка не когда не проползет эту резинку возникает из за того что при растяжение растояние перед улиткой постоянно увеличивается.

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

т.е наступит момент (на середине резинки) когда с каждым растяжением расстояние за улиткой будет увеличивается больше чем растояние перед ней. т.е от кажего нового метра с зади от улитки будет прибавляется например 60 см а с переде 40.

Таким образом наступит момент когда с зади оно увеличится на 99.99999999999999999999999 а с переде на 0.0000000000000000000000001 (ну условно)

Таким образом (сори за тафталогию) наступит момент когда перед улиткой будет меньше 1см .. и её чудовищный поход завершится.
пройденный путь на любой момент равен:
X[n] = n*(X[n-1]+1)*101/100
Если найти отношение элемента X[n+1] к Xn получим 101/100, это больше единицы, что по признаку Даламбера говорит о расходимости ряда, а значит существует такой номер шага n, когда Xn превысит любое наперед заданное число.
UFO landed and left these words here
Доползет конешно, резинка лопнет просто =) и улитка если не передумает после этого колапса ползти дальше то вконце-концов доползет.

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

Стоила ли того судьба улитки?

Человеко-часов, затраченных хабралюдьми на обдумывание и споры по поводу этой задачи, хватило бы на реализацию и запуск небольшого стартапа.

а на чтобы хватило всех человеко-часов, потраченных на чтение всей хабры за все время, просто страшно представить :)
но как-то скучно тратить все жизнь на разработку и запуск чего-то...
элементарное рассуждение в пользу того, что дойдет
при длине резинки в 100м очередное растяжение на 1м отодвинет улитку от цели на 1 см.
что равно скорости улитки в минуту.
соответственно при дальнейшем растяжении резинки улитка уже начинает приближаться к цели
(меееееедленно, но приближаться :) )
Про 1см неверно. При любой длине, улитка отодвигается от цели на {оставшуюся часть пути}/{общая длнина верёвки}м. Таким образом, если, например, улитка не дошла до середины, то улитка отодвинется от цели не менее чем на пол метра.
p = x/L - доля пройденного пути

L(t) = t+1
dx/dt = 0,01+x/(t+1)
dL/dt = 1
dp/dt = dx/dt/(t+1) + xd(1/(t+1)/dt = (0,01+x(t)/(t+1))/(t+1) - x(t)/(t+1)^2 = 0,01/(t+1)

P(t) = 0,01*ln(t+1)
P(t) = 1 => t=e^100-1 - время путешествия
Математики, блин растянули задачи до милионов итераций...
Соотношения пройденогопути к длине
по минутам
ползем...
1/100 растянули 2/200
3/200 растянули 4/300
5/300 растянули 6,25/400
если делить одно на другое то с каждым шагом число увеличивается, следовательно рано или поздно доползет...
короче растояние и длина увеличиваются пропорцианально, но улитка еще и ползет, следовательно доползет

Кстати мой первый пост, привет всем, жаль не знал раньше сайта...
Sign up to leave a comment.

Articles