[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 240: Undefined array key 1
Привет Русскоязычный информационно-болтологический форум 2006-04-16T06:31:24-05:00 https://forum.privet.com/feed/topic/92590 2006-04-16T06:31:24-05:00 2006-04-16T06:31:24-05:00 https://forum.privet.com/viewtopic.php?p=2117818#p2117818 <![CDATA[Задачка про локальные максимумы]]>
KirAleks писал(а):2 Izh : Ваша оценка, как вы ее сами назвали "с ходу", не является по оценкой по существу.

Код:

 while ( i<=n ) 
- алгоритмическая проверка конца массива. Сущьность не в том чтобы оценить выходит ли индекс за границы массива, а в реализации алгоритма позволяющего за ОДНО СРАВНЕНИЕ отсечь локальные екстремумы.


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

Одним из важнейших критериев "хорошести" алгоритма, на мой взгляд, является его работоспособность. Если он не работает, то о чем можно говорить?

Есть ли какие-то замечания по поводу работы самого алгоритма?


Замечания есть. Дайте только, пожалуйста, определение локального максимума, которым Вы пользовались.

Статистика: Добавлено Izh — Вс апр 16, 2006 7:31 am


]]>
2006-04-14T14:28:37-05:00 2006-04-14T14:28:37-05:00 https://forum.privet.com/viewtopic.php?p=2115261#p2115261 <![CDATA[Задачка про локальные максимумы]]>
KirAleks писал(а):....
Для простоты чтения конструкции привожу его в алгоритмическом виде. Прошу заметить что все приведeнное ниже можно легко модернизировать для потока данных.
.....


2 Izh : Ваша оценка, как вы ее сами назвали "с ходу", не является по оценкой по существу.

Код:

 while ( i<=n ) 
- алгоритмическая проверка конца массива. Сущьность не в том чтобы оценить выходит ли индекс за границы массива, а в реализации алгоритма позволяющего за ОДНО СРАВНЕНИЕ отсечь локальные екстремумы.

Есть ли какие-то замечания по поводу работы самого алгоритма?
Тут фактически второе статическое сравнение заменено двумя операторами goto.

Статистика: Добавлено KirAleks — Пт апр 14, 2006 3:28 pm


]]>
2006-04-11T01:41:56-05:00 2006-04-11T01:41:56-05:00 https://forum.privet.com/viewtopic.php?p=2107860#p2107860 <![CDATA[Задачка про локальные максимумы]]>
KirAleks писал(а):

Код:

size_t num_local_maximums(const int a[], size_t n) 
{
  size_t maxc = 0;
  unsigned int i = 2;
  if (n>2) {
      if (a[1]<a[0])  goto label1;
      label2:
      while ( i<=n ) {            <-------------
         if (a[i]<a[i-1]) {         <-------------
           maxc++;
           goto label1;
         }
         i++  ;
      }
      label1:
      while ( i<=n ) {             <-------------
         if (a[i]>=a[i-1]) {       <-------------
           goto label2;
         };
         i++;
      }
  }

 return maxc;
}



С ходу вижу грубую ошибку. Что произойдет, когда i достигнет n?

Статистика: Добавлено Izh — Вт апр 11, 2006 2:41 am


]]>
2006-04-03T02:45:23-05:00 2006-04-03T02:45:23-05:00 https://forum.privet.com/viewtopic.php?p=2093537#p2093537 <![CDATA[Задачка про локальные максимумы]]>
AndreyT писал(а):Я бы реализовывал эту функцию так (при условии подсчета количества максимальных плато, в том числе ширины 1, без учета плато на краях массива)
...

Код:

size_t num_local_maximums(const int a[], size_t n)
{
  size_t c = 0;

  if (n > 2)
  {
    unsigned char rise;

    for (++a, --n, rise = *(a - 1) < *a; n > 0; ++a, --n)
      if (rise ? *(a - 1) > *a : *(a - 1) < *a)
      {
        c += rise;
        rise = !rise;
      }
  }

  return c;
}


Но... хм.. может еще чего-то не дотестировал...

Стоит, однако, заметить, что принципиальных отличий от варианта Taffi тут нет.


Я вот предлагаю принципиально новый вариант НА ПОРУГАНИЕ который действительно использует ОДНО !!! сравнение на шаг. Естественно не учитываем проверку на границы массива.
Для простоты чтения конструкции привожу его в алгоритмическом виде. Прошу заметить что все приведeнное ниже можно легко модернизировать для потока данных.
Специально для К155ЛА3 :lol: : число сбросов процессорной очереди, которое приводит к тормозам (зависит это на самом деле от ВЫПОЛНЕНИЯ инструкции jmp, а не от операции сравнения -как вы писали- однако действительно при сравнении обычно jmp-подобная инструкция вставляется в негативную ветвь ) здесь прямо пропорционально числу экстремумов в массиве.
А ну и сложность алгоритма соот-но T(n)=n+C;

Код:

size_t num_local_maximums(const int a[], size_t n) 
{
  size_t maxc = 0;
  unsigned int i = 2;
  if (n>2) {
      if (a[1]<a[0])  goto label1;
      label2:
      while ( i<=n ) {
         if (a[i]<a[i-1]) {
           maxc++;
           goto label1;
         }
         i++  ;
      }
      label1:
      while ( i<=n ) {
         if (a[i]>=a[i-1]) {
           goto label2;
         };
         i++;
      }
  }

 return maxc;
}

Статистика: Добавлено KirAleks — Пн апр 03, 2006 3:45 am


]]>
2006-04-01T05:02:21-05:00 2006-04-01T05:02:21-05:00 https://forum.privet.com/viewtopic.php?p=2091150#p2091150 <![CDATA[Задачка про локальные максимумы]]>
KirAleks писал(а):Не обижайтесь, пожалуйста, просто только что увидел увидел эту задачку. А про математическую подготовку - сразу в глаза бросилось....

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

Статистика: Добавлено KP580BE51 — Сб апр 01, 2006 5:02 am


]]>
2006-04-01T04:05:03-05:00 2006-04-01T04:05:03-05:00 https://forum.privet.com/viewtopic.php?p=2091134#p2091134 <![CDATA[Задачка про локальные максимумы]]>
KP580BE51 писал(а):
KirAleks писал(а):По вашему ответу становится ясно что математический анализ в Университете вам не преподавали. Я целиком поддерживаю определение Dimpa (в математическом смысле)

Вы над этим думали 2 месяца? :horror:


Не обижайтесь, пожалуйста, просто только что увидел увидел эту задачку. А про математическую подготовку - сразу в глаза бросилось....

Статистика: Добавлено KirAleks — Сб апр 01, 2006 4:05 am


]]>
2006-04-01T03:48:29-05:00 2006-04-01T03:48:29-05:00 https://forum.privet.com/viewtopic.php?p=2091128#p2091128 <![CDATA[Задачка про локальные максимумы]]>
KirAleks писал(а):По вашему ответу становится ясно что математический анализ в Университете вам не преподавали. Я целиком поддерживаю определение Dimpa (в математическом смысле)

Вы над этим думали 2 месяца? :horror:

Статистика: Добавлено KP580BE51 — Сб апр 01, 2006 3:48 am


]]>
2006-04-01T03:41:46-05:00 2006-04-01T03:41:46-05:00 https://forum.privet.com/viewtopic.php?p=2091124#p2091124 <![CDATA[Задачка про локальные максимумы]]>
KP580BE51 писал(а):
dimp писал(а):
KP580BE51 писал(а):Определение максимума в математике достаточно однозначно - это точка в которой первая производная меняет знак.

Определение локального максимума функции действительно однозначно, но никакой "производной" там нет, вобще говоря, производная может быть вобще неопределена в этой точке, как тогда говорить о том, что она "меняет знак".:pain1: Точка x0 является локальным максимумом f(x), если существует такое e>0, что для любого x, |x-x0|<e, выполняется f(x0)>=f(x)


http://en.wikipedia.org/wiki/Extremum
a 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" :)
:hat:


По вашему ответу становится ясно что математический анализ в Университете вам не преподавали. Я целиком поддерживаю определение Dimpa (в математическом смысле)

Статистика: Добавлено KirAleks — Сб апр 01, 2006 3:41 am


]]>
2006-02-16T12:53:09-05:00 2006-02-16T12:53:09-05:00 https://forum.privet.com/viewtopic.php?p=2011474#p2011474 <![CDATA[Задачка про локальные максимумы]]>
IvanGrozniy писал(а):Кто позже всех завалилися тот молодец и будет работать. Справедливо?

работать будет тот кого не завалят ;) а насчет справедливости, меня проинформировали что такого явления в природе нет :pain1:

Статистика: Добавлено Flash-04 — Чт фев 16, 2006 12:53 pm


]]>
2006-02-16T12:43:10-05:00 2006-02-16T12:43:10-05:00 https://forum.privet.com/viewtopic.php?p=2011447#p2011447 <![CDATA[Задачка про локальные максимумы]]>
Flash-04 писал(а):мои 5 центов. мое сильное убеждение, что подобные задачи создаются не с целью раскрыть таланты интервьюируемого, а чтобы его завалить можно было :lol: сильно это мне напоминает дополнительные задачи на институстких экзаменах ;)

Кто позже всех завалилися тот молодец и будет работать. Справедливо?

Статистика: Добавлено IvanGrozniy — Чт фев 16, 2006 12:43 pm


]]>
2006-02-16T09:37:05-05:00 2006-02-16T09:37:05-05:00 https://forum.privet.com/viewtopic.php?p=2011017#p2011017 <![CDATA[Задачка про локальные максимумы]]> сильно это мне напоминает дополнительные задачи на институстких экзаменах ;)

Статистика: Добавлено Flash-04 — Чт фев 16, 2006 9:37 am


]]>
2006-02-16T09:27:22-05:00 2006-02-16T09:27:22-05:00 https://forum.privet.com/viewtopic.php?p=2010995#p2010995 <![CDATA[Задачка про локальные максимумы]]>
ПБХ писал(а):Для дискретного массива понятие "производная" не существует. Другой вопрос, что если у Вас есть функция определенная на непрерывном интервале и дифференцируемая в какой-то точке внутри его, то можно построить приближение к производной на дискретных решетках. Это, действительно, делается в численных методах сплошь и рядом.

Тем не менее все это не имеет никакого отношения к определению локального максимума (минимума) у дискретного сигнала.

Браво :appl:
Я уж и забывать начал и все никак вспомнить не мог точное определение производной.

Статистика: Добавлено IvanGrozniy — Чт фев 16, 2006 9:27 am


]]>
2006-02-16T00:18:56-05:00 2006-02-16T00:18:56-05:00 https://forum.privet.com/viewtopic.php?p=2010648#p2010648 <![CDATA[Задачка про локальные максимумы]]>
8K писал(а):
Dimchik писал(а):про неусточивость вообще ничего не знаю

Это из курса "вычей", т.е. вычислительных методов. Не все методы одинаково пригодны для практических целей.

Весточка из родных пенатов.


Черт побери, 8К! Я искал ету книгу где только мог! Вот уж спасибо за ссылку!

Статистика: Добавлено TheKonst — Чт фев 16, 2006 12:18 am


]]>
2006-01-27T17:08:38-05:00 2006-01-27T17:08:38-05:00 https://forum.privet.com/viewtopic.php?p=1973339#p1973339 <![CDATA[Задачка про локальные максимумы]]> Можно хоть сейчас в Юмор переносить! :funny:

Статистика: Добавлено Иоп — Пт янв 27, 2006 5:08 pm


]]>
2006-01-27T17:06:16-05:00 2006-01-27T17:06:16-05:00 https://forum.privet.com/viewtopic.php?p=1973330#p1973330 <![CDATA[Задачка про локальные максимумы]]>
ПБХ писал(а):
8K писал(а):
ПБХ писал(а):Производная для последовательностей вообще не определена.

Ну, уж если интегралы берут по дискретной мере, то неужели для производных ничего не придумали?

Столько много слов - я прям теряюсь. Вы имели в виду интеграл Лебега по дискретной мере?

Не берите в голову. Это все слова, что я запомнил с курса мат.анализа.

Статистика: Добавлено 8K — Пт янв 27, 2006 5:06 pm


]]>
2006-01-27T15:15:47-05:00 2006-01-27T15:15:47-05:00 https://forum.privet.com/viewtopic.php?p=1973024#p1973024 <![CDATA[Задачка про локальные максимумы]]>
8K писал(а):
ПБХ писал(а):Производная для последовательностей вообще не определена.

Ну, уж если интегралы берут по дискретной мере, то неужели для производных ничего не придумали?


Столько много слов - я прям теряюсь. Вы имели в виду интеграл Лебега по дискретной мере? Или речь просто о численных приближениях "обычных" интегралов?

Для дискретного массива понятие "производная" не существует. Другой вопрос, что если у Вас есть функция определенная на непрерывном интервале и дифференцируемая в какой-то точке внутри его, то можно построить приближение к производной на дискретных решетках. Это, действительно, делается в численных методах сплошь и рядом.

Тем не менее все это не имеет никакого отношения к определению локального максимума (минимума) у дискретного сигнала.

Статистика: Добавлено ПБХ — Пт янв 27, 2006 3:15 pm


]]>
2006-01-27T04:06:08-05:00 2006-01-27T04:06:08-05:00 https://forum.privet.com/viewtopic.php?p=1971821#p1971821 <![CDATA[Задачка про локальные максимумы]]>
8K писал(а):
Dimchik писал(а):про неусточивость вообще ничего не знаю

Это из курса "вычей", т.е. вычислительных методов. Не все методы одинаково пригодны для практических целей.

Весточка из родных пенатов.


А, ну тут я пас, я это все не умею.

Статистика: Добавлено Dimchik — Пт янв 27, 2006 4:06 am


]]>
2006-01-27T04:04:49-05:00 2006-01-27T04:04:49-05:00 https://forum.privet.com/viewtopic.php?p=1971819#p1971819 <![CDATA[Задачка про локальные максимумы]]>
Dimchik писал(а):про неусточивость вообще ничего не знаю

Это из курса "вычей", т.е. вычислительных методов. Не все методы одинаково пригодны для практических целей.

Весточка из родных пенатов.

Статистика: Добавлено 8K — Пт янв 27, 2006 4:04 am


]]>
2006-01-27T03:50:20-05:00 2006-01-27T03:50:20-05:00 https://forum.privet.com/viewtopic.php?p=1971812#p1971812 <![CDATA[Задачка про локальные максимумы]]>
8K писал(а):
Dimchik писал(а):
8K писал(а):
ПБХ писал(а):Производная для последовательностей вообще не определена.

Ну, уж если интегралы берут по дискретной мере, то неужели для производных ничего не придумали?

Вся наука на решетке построена на "дискретных производных". Миллион задач в конечных разностях.

А схема "крест", говорят, абсолютно неустойчива.


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

Статистика: Добавлено Dimchik — Пт янв 27, 2006 3:50 am


]]>
2006-01-27T03:44:43-05:00 2006-01-27T03:44:43-05:00 https://forum.privet.com/viewtopic.php?p=1971808#p1971808 <![CDATA[Задачка про локальные максимумы]]>
Dimchik писал(а):
8K писал(а):
ПБХ писал(а):Производная для последовательностей вообще не определена.

Ну, уж если интегралы берут по дискретной мере, то неужели для производных ничего не придумали?

Вся наука на решетке построена на "дискретных производных". Миллион задач в конечных разностях.

А схема "крест", говорят, абсолютно неустойчива.

Статистика: Добавлено 8K — Пт янв 27, 2006 3:44 am


]]>
2006-01-27T03:43:18-05:00 2006-01-27T03:43:18-05:00 https://forum.privet.com/viewtopic.php?p=1971806#p1971806 <![CDATA[Задачка про локальные максимумы]]>
8K писал(а):
ПБХ писал(а):Производная для последовательностей вообще не определена.

Ну, уж если интегралы берут по дискретной мере, то неужели для производных ничего не придумали?


Вся наука на решетке построена на "дискретных производных". Миллион задач в конечных разностях.

Статистика: Добавлено Dimchik — Пт янв 27, 2006 3:43 am


]]>
2006-01-27T03:30:19-05:00 2006-01-27T03:30:19-05:00 https://forum.privet.com/viewtopic.php?p=1971801#p1971801 <![CDATA[Задачка про локальные максимумы]]>
ПБХ писал(а):Производная для последовательностей вообще не определена.

Ну, уж если интегралы берут по дискретной мере, то неужели для производных ничего не придумали?

Статистика: Добавлено 8K — Пт янв 27, 2006 3:30 am


]]>
2006-01-26T17:50:05-05:00 2006-01-26T17:50:05-05:00 https://forum.privet.com/viewtopic.php?p=1971010#p1971010 <![CDATA[Задачка про локальные максимумы]]>

Код:

size_t num_local_maximums(const int a[], size_t n)
{
  size_t c = 0;

  if (n > 2)
  {
    const int *p1, *p2, *p3;
                                               
    for (n -= 2, p1 = a, p2 = p1 + 1, p3 = p2 + 1; n > 0;
           --n, p1 = p2, p2 = p3, ++p3)
      if (*p1 <= *p2 && *p2 > *p3)
        ++c;
  }

  return c;
}


Это вариант в таком виде, несмотря на свою компактность, страдает определенной [формальной] неоптимальностью. Её можно устранить ценой некоторой потери компактности кода.

Статистика: Добавлено AndreyT — Чт янв 26, 2006 5:50 pm


]]>
2006-01-26T17:36:11-05:00 2006-01-26T17:36:11-05:00 https://forum.privet.com/viewtopic.php?p=1970982#p1970982 <![CDATA[Задачка про локальные максимумы]]>

Код:

size_t num_local_maximums(const int a[], size_t n)
{
  size_t c = 0;

  if (n > 2)
  {
    unsigned char rise;

    for (++a, --n, rise = *(a - 1) < *a; ; rise = !rise)
    {
      assert(n > 0);

      for (++a, --n; n > 0; ++a, --n)
        if (rise ? *(a - 1) > *a : *(a - 1) < *a)
          break;

      if (n == 0)
        break;

      c += rise;
    }
  }

  return c;
}


Вообще-то обычно я предпочитаю не модифицировать параметры функции внутри функции, но в данном случае отступил от этого правила для краткости.

Манера реализовывать такое двумя циклами - это просто у меня почерк такой :) Можно, разумеется, немножко вывернуть логику кода и сделать все одним циклом

Код:

size_t num_local_maximums(const int a[], size_t n)
{
  size_t c = 0;

  if (n > 2)
  {
    unsigned char rise;

    for (++a, --n, rise = *(a - 1) < *a; n > 0; ++a, --n)
      if (rise ? *(a - 1) > *a : *(a - 1) < *a)
      {
        c += rise;
        rise = !rise;
      }
  }

  return c;
}


Но... хм.. может еще чего-то не дотестировал...

Стоит, однако, заметить, что принципиальных отличий от варианта Taffi тут нет.

Статистика: Добавлено AndreyT — Чт янв 26, 2006 5:36 pm


]]>
2006-01-26T16:44:25-05:00 2006-01-26T16:44:25-05:00 https://forum.privet.com/viewtopic.php?p=1970829#p1970829 <![CDATA[Re: Задачка про локальные максимумы]]>
Izh писал(а):

Код:

unsigned int num_local_maximums( const int array[], size_t size );


Кстати, уже за такой прототип - no hire.

Если вы уж использовали 'size_t' для передачи размера массива, то и результат надо вызвращать в 'size_t'. Это если это достаточно generic функция (каковой в принципе она и должна быть в подобных задачах).

В более specific функциях же не должно быть 'size_t' ни там, ни там.

Статистика: Добавлено AndreyT — Чт янв 26, 2006 4:44 pm


]]>
2006-01-26T16:37:16-05:00 2006-01-26T16:37:16-05:00 https://forum.privet.com/viewtopic.php?p=1970802#p1970802 <![CDATA[Задачка про локальные максимумы]]>
Izh писал(а):
Izh писал(а):Про отстутствие форматирования вообще
говорить не хочеться.

Все! Интервью завалено! Аднозначно!


Да, но не по этой причине. Наличие
форматирования показывает, насколько
программист уважает свой труд и труд
коллег, которые вынуждены читать его
код.


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

Статистика: Добавлено AndreyT — Чт янв 26, 2006 4:37 pm


]]>
2006-01-24T21:35:18-05:00 2006-01-24T21:35:18-05:00 https://forum.privet.com/viewtopic.php?p=1966654#p1966654 <![CDATA[Задачка про локальные максимумы]]> другое определение локального максимума, которое было бы более осмысленным с практической точки зрения. Я никогда не утверждал обратное.

Я сказал в точности то, что сказал. А именно, что данное в теме определение было как минимум "нестандартным" по отношению к последовательностям. (Неверными определения быть скорее всего не могут.) А кроме этого, что в терминах того определения, Ваше понимание локального максимума было неверным.

Статистика: Добавлено ПБХ — Вт янв 24, 2006 9:35 pm


]]>
2006-01-24T21:12:18-05:00 2006-01-24T21:12:18-05:00 https://forum.privet.com/viewtopic.php?p=1966630#p1966630 <![CDATA[Задачка про локальные максимумы]]>
Taffi писал(а):
Вы, случайно, не физик?

Нет. А Вы не проподователь ВУЗа? Что-то мне этот топик напомнил про веселые студенческие годы :)


Нет. Хотя мысли про то, чтобы свалить в академию активно
бродят в голове. :)

Статистика: Добавлено Izh — Вт янв 24, 2006 9:12 pm


]]>
2006-01-24T21:10:55-05:00 2006-01-24T21:10:55-05:00 https://forum.privet.com/viewtopic.php?p=1966627#p1966627 <![CDATA[Задачка про локальные максимумы]]>
ПБХ писал(а):После этого Вы дали неверное определение, а потом его еще неверно применили. Ну да ладно. Отвечу на Ваш вопрос.


Это не мое определение, а Wikipedi-и. И ... можно я не буду
с вами спорить? Обращу ваше внимание только на
следующий факт из той же Wikipedi-и:

Wikipedia писал(а):The concepts of maxima and minima are not restricted to
functions whose domain is the real numbers. One can talk about
global maxima and global minima for real-valued functions whose
domain is any set. In order to be able to define local maxima and
local minima, the function needs to take real values, and the
concept of neighborhood must be defined on the domain of the
function. A neighborhood then plays the role of the set of x such
that |x - x*| < ε.

Статистика: Добавлено Izh — Вт янв 24, 2006 9:10 pm


]]>
2006-01-24T20:27:37-05:00 2006-01-24T20:27:37-05:00 https://forum.privet.com/viewtopic.php?p=1966553#p1966553 <![CDATA[Задачка про локальные максимумы]]>
Вы, случайно, не физик?
А Вы не проподователь ВУЗа?
А нет ли среди уважаемой публики кого в очках-пиджаке-шляпе? :mrgreen: :mrgreen: :mrgreen:

Статистика: Добавлено vm__ — Вт янв 24, 2006 8:27 pm


]]>
2006-01-24T19:39:50-05:00 2006-01-24T19:39:50-05:00 https://forum.privet.com/viewtopic.php?p=1966450#p1966450 <![CDATA[Задачка про локальные максимумы]]>
Вы, случайно, не физик?

Нет. А Вы не проподователь ВУЗа? Что-то мне этот топик напомнил про веселые студенческие годы :)

Статистика: Добавлено Taffi — Вт янв 24, 2006 7:39 pm


]]>
2006-01-24T19:25:52-05:00 2006-01-24T19:25:52-05:00 https://forum.privet.com/viewtopic.php?p=1966415#p1966415 <![CDATA[Задачка про локальные максимумы]]>
Izh писал(а):
ПБХ писал(а):Если пользоваться "определением из Wikipedia", которое, строго говоря, неприменимо в Вашем случае, то каждый элемент любого массива является локальным максимумом.


Я, видимо, понимаю это определение не так, как вы. Как, по
вашему, это определение будет работать, для
последовательности 1, 2, 3? Впрочем, это уже оффтопик.


Не знаю, насколько это - оффтопик. Вы все-таки автор следующего пассажа:

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


После этого Вы дали неверное определение, а потом его еще неверно применили. Ну да ладно. Отвечу на Ваш вопрос.

Последовательность - это функция натурального аргумента. То есть в Вашем примере Вы рассматриваете функцию
a(1) = 1;
a(2) = 2;
a(3) = 3.

a(2) = 2 будет локальным максимумом (x_0 = 2, a(x_0) = 2) согласно данному Вами определению, потому что если взять \eps = 0.5, то неравенство

| x - x_0 | < \eps

имеет только одно решение в области определения функции a(), а именно такие решения Вы рассматриваете, т.к. иначе f(x) из определения локального максимума не определено. Это решение x = 2. Тогда

a(x) <= a(x_0)

Ч.т.д.

Статистика: Добавлено ПБХ — Вт янв 24, 2006 7:25 pm


]]>
2006-01-24T13:24:19-05:00 2006-01-24T13:24:19-05:00 https://forum.privet.com/viewtopic.php?p=1965557#p1965557 <![CDATA[Задачка про локальные максимумы]]>
ПБХ писал(а):Если пользоваться "определением из Wikipedia", которое, строго говоря, неприменимо в Вашем случае, то каждый элемент любого массива является локальным максимумом.


Я, видимо, понимаю это определение не так, как вы. Как, по
вашему, это определение будет работать, для
последовательности 1, 2, 3? Впрочем, это уже оффтопик.

Статистика: Добавлено Izh — Вт янв 24, 2006 1:24 pm


]]>
2006-01-24T09:29:58-05:00 2006-01-24T09:29:58-05:00 https://forum.privet.com/viewtopic.php?p=1965095#p1965095 <![CDATA[Задачка про локальные максимумы]]> Статистика: Добавлено underdog — Вт янв 24, 2006 9:29 am


]]>
2006-01-23T22:59:02-05:00 2006-01-23T22:59:02-05:00 https://forum.privet.com/viewtopic.php?p=1964663#p1964663 <![CDATA[Задачка про локальные максимумы]]> каждый элемент любого массива является локальным максимумом.

Производная для последовательностей вообще не определена.

Статистика: Добавлено ПБХ — Пн янв 23, 2006 10:59 pm


]]>
2006-01-23T22:23:08-05:00 2006-01-23T22:23:08-05:00 https://forum.privet.com/viewtopic.php?p=1964580#p1964580 <![CDATA[Задачка про локальные максимумы]]>
Taffi писал(а):
2. Игнорируются плоские локальные максимумы.

Ну не совсем. Для "0 1 1 1 0" вернет 1.


Если понимать под локальным экстремумом точку, где
производная меняет знак, то вы правы. Если пользоваться
определением из Wikipedi-и, то нет. Вы, случайно, не физик?

Статистика: Добавлено Izh — Пн янв 23, 2006 10:23 pm


]]>
2006-01-23T21:54:12-05:00 2006-01-23T21:54:12-05:00 https://forum.privet.com/viewtopic.php?p=1964502#p1964502 <![CDATA[Задачка про локальные максимумы]]>
Если понимать под определением локального максимума элемент, который больше своих соседей, то задача решена верно. Вы, судя по всему, больше под Windows пишите?


Сейчас - да.

2. Игнорируются плоские локальные максимумы.

Ну не совсем. Для "0 1 1 1 0" вернет 1.

Статистика: Добавлено Taffi — Пн янв 23, 2006 9:54 pm


]]>
2006-01-23T12:50:38-05:00 2006-01-23T12:50:38-05:00 https://forum.privet.com/viewtopic.php?p=1963445#p1963445 <![CDATA[Задачка про локальные максимумы]]>
Gabo писал(а):К решению Taffi надо добавить в начало

Код:

   if(size < 2)
      return size;


При той интерпретации локального максимума, которой
он пользуется, то не надо. Иначе решение не будет
консистетным. Его определение можно уточнить так:
Локальный максимум это элемент, который больше своих
соседей и не лежащий на краях массива. То есть если у
вас только один элемент в массиве, то он не может быть
локальным максимумом. Любопытно, однако, что данное
определение, которое использовано уже в двух
решениях не очень очевидно. Так как:

1. Не очевидно поведение на краях массива.
2. Игнорируются плоские локальные максимумы.

Статистика: Добавлено Izh — Пн янв 23, 2006 12:50 pm


]]>
2006-01-23T08:00:12-05:00 2006-01-23T08:00:12-05:00 https://forum.privet.com/viewtopic.php?p=1963086#p1963086 <![CDATA[Задачка про локальные максимумы]]>

Код:

   if(size < 2)
      return size;

Статистика: Добавлено Gabo — Пн янв 23, 2006 8:00 am


]]>
2006-01-23T04:03:57-05:00 2006-01-23T04:03:57-05:00 https://forum.privet.com/viewtopic.php?p=1963027#p1963027 <![CDATA[Задачка про локальные максимумы]]>
Taffi писал(а):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;
}


Если понимать под определением локального максимума элемент, который больше своих соседей, то задача решена верно. Вы, судя по всему, больше под Windows пишите?

Статистика: Добавлено Izh — Пн янв 23, 2006 4:03 am


]]>