![]() |
|
|
![]()
|
|
| rv82 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
Здравствуйте! Помогите пожалуйста с алгоритмом. Имеется массив чисел (точнее, неупорядоченная последователность чисел) неограниченной длины, примерно такого вида:
1 2 1 2 1 2 3 4 5 4 3 2 1 2 1 2 3 4 5 6 5 4 5 4 3 2 ^ ^ Нужно найти все локальные максимумы в этом массиве (обозначены стрелками). Никак не могу дойти до решения |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Почему в начале массива 12121... двойки не считаются максимумами?
|
|||
|
||||
| rv82 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
Точно, забыл сказать. Двойки максимумами не считаются. Это "мусор", вызванный колебаниями измерительного прибора.
|
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Так надо значит сперва сигнал выровнять.
Т.е надо первым делом из всех нечётных вычесть 1, а из чётных 2? Получается так? А вообще алгоритм простой. Бежишь по полю пока предидущее число меньше нестоящего. Как только становиться наоборот, предыдущее число - максимум. |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 5 Всего: 99 |
Это если колебание такое: 121212... А если другое? А бы лучше смотрел так: 1, 2 (поднялся на один вверх за максимум не считать), 1, 2 (поднялся на один вверх за максимум не считать), 3 (опа вот оно - восхождение), 4 еще больше, и т.д. пока вниз не пойдет, а там также... В случае 6, 5, 4, 5, 4 тоже сработает, т.к. восхождение только на одну ступень. Если основные колебания больше чем +/- 1, то можно изменить это условие с подъемом, который должен достичь опр. уровня... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Вот я и говорю, что сначала надо определиться, что шум, а что замер. |
|||
|
||||
| rv82 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
Я примерно так и делаю. Проблемы быввают только в том, что сигнал в большинстве случаев гораздо более зашумлён. Хотя, за идею выравнивания сигнала - спасибо! |
|||
|
||||
| cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 5 Всего: 99 |
Лучше над этим
Low-pass filter подумай... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |