Ну это уже скорее оценка личностных качеств человека - один честно скажет, что задача ему не интересна. Другой промолчит и напишет фигню. В любом случае конечно, ваше право выбирать для найма тех людей, с которыми потом можно будет адекватно общаться и работать.
Ну я же не написал, что задача глупая. Просто меня немного смущает, что решение задачи явно опирается на какие-то особенности конкретного сайта, о которых не говорится. Вот и вы про то же - мол задача поставлена предельно ясно. Извините, я так не считаю.
Интересный у вас подход к поиску работы. То есть приходите вы на собеседование. Вам предлагают задачку типа этой, а вы им в ответ: "Вы что это мне тут суёте. Разве можно так собеседование проводить.". И не важно, что вы пришли потому, что вам действительно интересны проекты компании. Как же так. Разве можно работать в компании, которая ТАК собеседует кандидатов.
Приведённый вами код забанит всех сколько-нибудь активных пользователей на моём сайте. И так, думаю, будет со многими веб2.0 сайтами. Вы не сбрасываете счётчик $status[$ip]['count']. А скрипт устроен так, что каждый раз, когда пользователь сделал два запроса с маленькой паузой, счётчик увеличивается. В вашем скрипте предел равен пяти, что достигается очень быстро. А на сайте, где при загрузке страницы сразу идёт обращение по ajax к серверу для подгрузки данных, реальные пользователи будут попадать под эту мясорубку без разбору. Особо "повезёт" тем, у кого шустрый канал.
А по существу: плохо по такой специфической задаче делать выводы о кандидате. В общем, всё уже и так объяснили выше.
Задача поставлена так, что доказывать существование нет необходимости. В данных условиях ответ верный и единственно возможный. Другой вопрос, что условие может быть не корректным. Но это уже совсем другая задача :)
Запустил сегодня KDE4 на своём ubuntu. Первые беты мне не особо нравились. Но то что я увидел... Как же это красиво!!! Не знаю, вернусь ли теперь к Гному.
Так-то так, да не совсем. Условие меняется на 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 метр. Тогда ваше рассуждение остаётся верным, но улитка, очевидно, не доползёт, потому что с каждой минутой конец резинки отдаляется от неё ровно на 99см.
Если улитка миллиард раз растянуть улитку, то от такого растяжения она порвётся. Так что если что-то и доползёт до финиша, это уже будет не улитка. Садюги :)
Был бы благодарен, если бы вы указали мне на мою ошибку.
А по существу: плохо по такой специфической задаче делать выводы о кандидате. В общем, всё уже и так объяснили выше.
Подсказка: 14+13+12+11+10+9+8+7+6+5+4+3+2+1 = 105 > 100
Кликая по ссылке, вы улучшаете хабрагород и тут же увидите его во всей красе.
Ну действительно, повторяя ваши слова: т.к. коэффициент удлинения (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. В моих условиях это неравенство доказывается элементарно.
#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 не писал очень давно.