Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
TigerSHARC
0 / 0 / 0
Регистрация: 01.03.2010
Сообщений: 24
#1

Поиск максимума - C++

04.03.2010, 20:11. Просмотров 1567. Ответов 2
Метки нет (Все метки)

Помогите пожалуйста в следующем вопросе.

Имеется массив данных. Известно, что в массиве имеются локальные максимумы, и глобальные.
Как можно найти номер максимального элемента из массива?
Проблеме в том, что массив представлен периодичными данными, в которые могут входить локальные максимумы.
Например { 1, 2, 3, 2, 5, 6, 17, 3, 2, 1, -3, -1, 2, 4, 5, 20, 3, 2, 1, 0} здесь третий элемент - это локальный максимум (а седьмой и шестнадцатый элементы - искомые максимумы)
Наличие же локальных максимумов усложняет конструкцию и делает невозможным применение (как критерия максимума) простого сравнения со следующим значением.
Думаю нужно как-то использовать информацию о том, что искомые максимумы - самые большие значения в массиве.

очень нужен совет
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2010, 20:11     Поиск максимума
Посмотрите здесь:

Поиск максимума в массиве - C++
#include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; class first_arr{ int i; public: ...

Поиск максимума в массиве - C++
Всем доброго времени суток! Прошу помощи у форумчан, возникла проблема, не могу понять, как возвести элементы массива в куб. Задание звучит...

Поиск максимума и минимума - C++
Уважаемые форумчане помогите с задачей немогу понять как её зделать. Задание:N точек на площаде заданы своими координатами (xi,yi)....

Задача на поиск максимума - C++
Задача с (acm.timus.ru) Вот условия Рассмотрим последовательность чисел ai, i = 0, 1, 2, …, удовлетворяющих следующим условиям: a0 =...

Поиск максимума в строках матрицы - C++
Здравствуй...Помги пожалуйста решить задачу..Что бы было простое решения,можно несколько решений и желательно простых.....(с полными...

Поиск минимума и максимума в двумерном массиве - C++
#include "stdafx.h" #include <iostream> using namespace std; int main() { int n; cin >> n; int *a = new int; for...

поиск максимума в части двумерного массива - C++
Ребята, доброе время суток!!! За ранее благодарен кто откликнется!!! Дана квадратная матрица порядка n (n строк, n столбцов). ...

Поиск минимума и максимума в динамическом массиве указателей - C++
Вот функции минимума и максимума в шаблоне класса. Проблема в том, что меняется значение 1 элемента в динам. массиве указателей, и дальше...

поиск максимума в двумерном массиве, где ошибка - C++
// lab2_1.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <conio.h> #include <stdio.h> ...

Получение максимума - C++
Даны x, y, z. Вычислить a, b, используя приведенные ниже формулы. Получить max(a, b). a=1+sin^2(x+y)/2+|x-2x/(1+x^2y^2)|+x,...

функиция нахождения максимума - C++
Добрый день. помогите написать функицию нахождения максимума в двух массивах(одномерных) на с++ и использованием форм(label,edit). ввод...

Вычисление минимума/максимума - C++
Даны действительные числа Х,У,Z.Вычислить 1)max (x+y+z;xyz) 2)min (x+y+z/2;чня)+1


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Зоти Сергей
228 / 226 / 13
Регистрация: 18.12.2009
Сообщений: 316
04.03.2010, 20:34     Поиск максимума #2
Для нахождения максимумов зачастую есть дополнительные свойства.
Например минимальное расстояние от максимума до максимума, ширина поля, для поиска максимума, а так же грань максимума.(Threshold).

Вот пример поиска максимума, используя threshold.
Само по себе это значение максимального прыжка ф-ции. Тоесть, если элемент массива с индексом i
больше элемента массива с индексом i-1 и одновременно больше элемента массива с индексом i+1 - это максимум. i-1 и i+1 - это ширина поля, для поиска максимума. В Вашем случае его можно оставить равным 1.
Вот Ваш пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//---------------------------------------------------------------------------
 
 
#include <stdio.h>
#include <conio.h>
int main(int argc, char* argv[])
{
    int Threshold = 3;
    int Array[]={ 1,2,3,2,5,6,17,3,2,1,-3,-1,2,4,5,20,3,2,1,0};
        int EllementsAmount=sizeof(Array)/sizeof(int);
 
        for(int i=1;i<EllementsAmount-1;i++)
            if(abs(Array[i]-Array[i-1])>Threshold&&abs(Array[i]-Array[i+1])>Threshold)
                    printf("Founded maximum: %d\n", i+1);
 
        getch();
 
    return 0;
}
//---------------------------------------------------------------------------
TigerSHARC
0 / 0 / 0
Регистрация: 01.03.2010
Сообщений: 24
04.03.2010, 21:09  [ТС]     Поиск максимума #3
Этот приме на самом деле просто для того что бы показать суть задачи.

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

проблема((
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru