Taffi wrote:unsigned int num_local_maximums( const int array[], size_t size )
for(i = 1; i < size; i++) {
}
return n;
}
Форматирования нет. Еще одно интервью завалено.
KP580BE51 wrote:Определение максимума в математике достаточно однозначно - это точка в которой первая производная меняет знак.
dimp wrote:KP580BE51 wrote:Определение максимума в математике достаточно однозначно - это точка в которой первая производная меняет знак.
Определение локального максимума функции действительно однозначно, но никакой "производной" там нет, вобще говоря, производная может быть вобще неопределена в этой точке, как тогда говорить о том, что она "меняет знак". Точка x0 является локальным максимумом f(x), если существует такое e>0, что для любого x, |x-x0|<e, выполняется f(x0)>=f(x)
a maximal extremum (maximal turning point or relative maximum) is one where the derivative of the function changes from positive to negative;
KP580BE51 wrote:dimp wrote:KP580BE51 wrote:Определение максимума в математике достаточно однозначно - это точка в которой первая производная меняет знак.
Определение локального максимума функции действительно однозначно, но никакой "производной" там нет, вобще говоря, производная может быть вобще неопределена в этой точке, как тогда говорить о том, что она "меняет знак". Точка x0 является локальным максимумом f(x), если существует такое e>0, что для любого x, |x-x0|<e, выполняется f(x0)>=f(x)
http://en.wikipedia.org/wiki/Extremuma maximal extremum (maximal turning point or relative maximum) is one where the derivative of the function changes from positive to negative;
В этом смысле что искать точку где array[i-1]- array[i] "changes from positive to negative" более правильно. математически, а не по мнению "lzh"
point x* is a local (or relative) maximum of a function f if there exists some ε > 0 such that f(x*) ≥ f(x) for all x with |x-x*| < ε. On a graph of a function, its local maxima will look like the tops of hills.
dimp wrote:KP580BE51 wrote:Определение максимума в математике достаточно однозначно - это точка в которой первая производная меняет знак.
Определение локального максимума функции действительно однозначно, но никакой "производной" там нет, вобще говоря, производная может быть вобще неопределена в этой точке, как тогда говорить о том, что она "меняет знак". Точка x0 является локальным максимумом f(x), если существует такое e>0, что для любого x, |x-x0|<e, выполняется f(x0)>=f(x)
Izh wrote:Эта задачка не на знание соискателем матанализа, а только
повод для разговора, чтобы понять, что тот из себя
представляет, в частности насколько он отдает себе отчет в
своих действиях и насколько он аккуратен. Вы тест не прошли.
Если уж говорить об определениях, тот вот ссылка из
той же wikipedi-и. Заметьте, что я не спорю с вашим
определением, в задачке подразумевалось, что вы
его либо спросите, либо зададите сами и озвучите.
То есть по этому определению, если у вас есть две соседние
(попадающие в ε-окрестность друг друга) точки, значения функции которых равны и одна из которых является
локальным максимумом, то другая также должна быть
локальным максимумом.
KP580BE51 wrote:Вы задали глубоко оторваный от реальности вопрос. Вы получили такойже ответ. Это все равно что попросить человека принести кирпич, а потом начать расказывать, что дескать вы хотели силикатный кирпич, а лучше не силикатный а шлакоблок..... Если вам хочется пива, и вы просите налить вам пива, то у вас могут спросить, какого пива вам хочется, а могут просто налить пива, и будут абсолютно правы.
Иоп wrote:ППКС!
Не знаю как в программировании, а в нашей области, если потенциальный работодатель задаст подобную задачку на интервью, то потенциальный сотрудник его пошлет лесом. Потому что любая работа - это сотрудничество. И если работодатель позволяет себе неточности в постановке задачи, но требует точности в решении, то сотрудничества не получится! Мы называем это профессиональной этикой, которой похоже нет в программировании.
KP580BE51 wrote:Ну и хорошо. Удачи в поиске телепатов.
Вы спорите с правильностью решения задачи.
Вы задали глубоко оторваный от реальности вопрос. Вы получили такойже ответ. Это все равно что попросить человека принести кирпич, а потом начать расказывать, что дескать вы хотели силикатный кирпич, а лучше не силикатный а шлакоблок..... Если вам хочется пива, и вы просите налить вам пива, то у вас могут спросить, какого пива вам хочется, а могут просто налить пива, и будут абсолютно правы.
Taffi wrote:unsigned int num_local_maximums( const int array[], size_t size )
{
BOOL bGrow = FALSE;
unsigned int n = 0, i;
for(i = 1; i < size; i++) {
if (array[i] >= array[i-1])
bGrow = TRUE;
else if (bGrow) {
n++;
bGrow = FALSE;
}
}
return n;
}
Gabo wrote:К решению Taffi надо добавить в началоCode: Select all
if(size < 2)
return size;
Если понимать под определением локального максимума элемент, который больше своих соседей, то задача решена верно. Вы, судя по всему, больше под Windows пишите?
2. Игнорируются плоские локальные максимумы.