Второй деньЦветы. 2005 год. Лучшие работы

Вершины и впадины

Ну вот. Отладил код. Теперь находит все вершины и впадины чётко и точно.
Вершина - это та точка, к которой поднимается сигнал и от которой опускается сигнал. Впадина - наоборот всё.
Если же нам нужно определить небольшую выпуклость (как на рисунке немного справа - две штуки), которые не считаются вершинами, потому что направление изменения сигнала идёт всё время в одну сторону (вверх или вниз), то тут уже нужно поработать дополнительно, а именно - сдвигать нулевой уровень. Как это делать? А очень просто. Просто величина приращения по одной координате будет больше, чем по другой. И в этой точке будет происходить изменение этого порядка вплоть до смены. Вот это и можно засечь и определить.
01.

Comments (20):

  • ты попоробуй свой метод нахождения вершин к графику форекса применить. в золоте утонешь.
  • а для чего все это?
    • средство от скуки..долгими зимними вечерами )
  • Ага, ты прав.
    Только теперь они курят очень дорогой табак.
    • это их право.
      • Не, это не право.
        Право есть у всех. А у них есть возможности по реализации права.
        • ню ню..и ты что, во всё это веришь??
          • Я вполне доверяю своим глазам.
  • Ой, а можно я?
    Это как гаммы играть на фортепьяне. Само по себе ценности никакой не несёт; показывать "как артистично я умею играть гаммы" на публике даже как-то и неудобно (впрочем, некоторые осмеливаются - да ещё и перед публикой, умеющей играть на фортепьяно - даже не задумываясь, как смешно при этом выглядят); зато это необходимо для наработки рефлексов и приобретения "крупноуровневых блоков", из которых потом, не задумываясь над мелкими деталями (как не задумывается взрослый человек над тем, как вести руку для написания отдельных букв, при написании письма на бумаге), будет легко строить серьёзные произведения.
    • угу..обычно такие ребята работают над чем-то повторяющимся, однотипным. рука набита - строчи код, как робот...
      • 1. А разумеется. Всё повторяется, всё однотипно. Ты даже представить себе не можешь, насколько много мест, где требуются такие "повторяющиеся однотипные" высокоуровневые блоки, как дифференциальное счисление, дискретная математика (конечные автоматы, графы и т.п. радости программиста), объектно-ориентированное проектирование и понимание типичных алгоритмов и структур данных (самое простое - списки и деревья). Да что там, некоторым даже лямбда-счисление требуется.

        2. Но на самом деле, всё достаточно разнообразно. Дело в том, что таких блоков очень много, и многие из них приходится нарабатывать самому. А большинство блоков основывается на других... Не разбираясь в графах, вряд ли поймёшь конечные автоматы; не понимая конечных автоматов, вряд ли напишешь хороший компилятор/интерпретатор/транслятор собственного языка; не привыкнув писать DSL-и, будешь пытаться клепать большие и сложные задачи из мелких блоков того языка, который знаешь (что для крупных задач явно затруднительно, будь то хоть Java, хоть C++). Вот и приходится всю жизнь новым блокам учиться...
        Да, кстати, для написания твоей мифической "распознавалки речи" я бы рекомендовал для начала написать DSL для её решения ;)
        • сколько раз повторять - ПРЕОБРАЗОВАТЕЛЬ!!!
          • Звуков в буквы? Ну, я и говорю - распознавалка.
            Хотя да, ты прав, на распознавалку это действительно не тянет. Правильная распознавалка (использующая позаимствованные из человеческого мозга алгоритмы) будет как минимум преобразовывать потоки звуков в слова (при выборе вариантов проверяя наличие подобных вариантов в словаре целевого языка каким-нибудь Байесом). Совсем хорошая - потоки звуков в предложения (проверяя структуру предложения и отбрасывая низковероятные варианты, при которых предложение построено заведомо неправильно). Впрочем, пока даже совсем хорошая распознавалка не научится преобразовывать потоки звуков в тексты (подобно человеку, анализируя контекст и выясняя, что он наиболее вероятно хотел сказать в новом предложении, зная, на какую тему он уже до этого говорил), сравнимого с человеческим распознавания от неё ждать не получится.
            • чушь несёшь.

              мой преобразователь будет подходить для ЛЮБОГО языка. только настроить нужно будет.
              • > чушь несёшь.
                Я бы мог хотя бы рассмотреть возможность этого (не обязательно согласиться - нет) в том случае, если бы у меня было хотя бы сколь-нибудь обоснованное предположение, что в данном вопросе ты более квалифицирован.

                > мой преобразователь будет подходить для ЛЮБОГО языка. только настроить нужно будет.
                Чрезвычайно оптимистично.
                Настройка, случайно, по энергоёмкости не будет сравнима с созданием нового человека из атомов ;) ?
                • я уже обсуждал эту тему с одним человеком из нашей фирмы :) Андреем Тукмаковым. вот.. так тут даже всплыли мысли о том, чтобы продавать эти самые блоки_других_языков.
                  • Ты поговорку про "шкуру неубитого медведя" знаешь?
                    • так миром движет мечта:)

                      если бы ты не знал, что получишь зарплату за работу, стал бы ты её делать? :)
                      • > так миром движет мечта:)
                        Ложь. Миром движет лень.

                        > если бы ты не знал, что получишь зарплату за работу, стал бы ты её делать? :)
                        Смотря за какую работу.