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

Нахождение локального минимума - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
jambas92
 Аватар для jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
29.11.2010, 12:55     Нахождение локального минимума #1
Здравствуйте!!!! Напишите программу или алгоритм для нахождения локального минимума. Заранее спасибо

Добавлено через 14 минут
я дошел до такого шаблона
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
const int MAX_X = 3;
const int MAX_Y = 4;
int a[MAX_X][MAX_Y] = {
    {    1,    3,    12,    -9 },
    {    5,    24,    0,    54 },
    {    -1,    10,    4,    -4 }
};
// check x+x_offset row
const bool checkXrow(const int x, const int y, const int x_offset)
{
    // y-1 col
    if(y > 0 && a[x+x_offset][y-1] < a[x][y])
        return true;
    // y col
    if(a[x+x_offset][y] < a[x][y])
        return true;
    // y+1 col
    if(y < MAX_Y-1 && a[x+x_offset][y+1] < a[x][y])
        return true;
    return false;
}
// if any around more, than the element(x, y), return false
const bool IsLocalMin(const int x, const int y)
{
    // x-1 row
    if(x > 0 && checkXrow(x, y, -1))
        return false;
    // x row
    if(checkXrow(x, y, 0))
        return false;
    // x+1 row
    if(x < MAX_X-1 && checkXrow(x, y, 1))
        return false;
    return true;
}
int main(int argc, char* argv[])
{
    // print matrix
    for(int i = 0; i < MAX_X; ++i) {
        for(int j = 0; j < MAX_Y; ++j)
            cout << a[i][j] << "\t";
        cout << endl;
    }
    // calculate number of local minimums
    int count = 0;
    for(int i = 0; i < MAX_X; ++i)
        for(int j = 0; j < MAX_Y; ++j)
            if(IsLocalMin(i, j))
                count++;
    // print number of local minimums
    cout << "number of local minimums: " << count << endl;
    return 0;
}
но как сделать так что бы я сам вводил числа, например ввожу N, а затем забиваю двумерный массив произвольно и проверяю на наличие локальных минимумов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2010, 12:55     Нахождение локального минимума
Посмотрите здесь:

C++ Непрерывные функции и нахождение минимума на отрезке
C++ Рекурсия, нахождение минимума в массиве
Нахождение минимума k в матрице C++
C++ Нахождение минимума/максимума в конкретной строке или столбце
Нахождение минимума из двух чисел C++
Нахождение минимума функции на интервале способом перебора C++
C++ Нахождение минимума функции одной переменной методом кубической параболы
Двумерный массив, поиск локального минимума - доработать код C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
29.11.2010, 17:25     Нахождение локального минимума #2
но как сделать так что бы я сам вводил числа, например ввожу N, а затем забиваю двумерный массив произвольно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int main()
{
    int n,m;
    cout<<"  n=";
    cin>>n;
    cout<<"  m=";
    cin>>m;
    int** a; 
    a=new int* [n]; 
    for(int i=0;i<n;i++) a[i]=new int [m];
    cout<<"\n   Enter elements:\n";
    for(int i=0;i<n;i++)
    for(int j=0;j<m;j++) cin>>a[i][j];
    …
    cout<<"\n   Matrix:\n";
    for(int i=0;i<n;i++)
    {
         for(int j=0;j<m;j++) cout<<a[i][j]<<"   ";
         cout<<endl;
    }
    for(int i=0;i<n;i++)
    delete [] a[i];  
    delete [] a;  
    return 0;
}
Yandex
Объявления
29.11.2010, 17:25     Нахождение локального минимума
Ответ Создать тему
Опции темы

Текущее время: 23:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru