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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
kickerb
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 6
#1

Нахождение седловых точек матрицы - C++

06.11.2010, 22:14. Просмотров 2042. Ответов 2
Метки нет (Все метки)

Доброго вечера всем.Не могу справиться с заданием. Если кто-то сможет помочь сделать это задание, буду очень благодарен в помощи

Для матрицы 7х7 определить координаты всех ее седловых точек. Елемент матрицы седловая точка, если этот елемент самый большой в строке и одновременно - самым маленький в столбце.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2010, 22:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нахождение седловых точек матрицы (C++):

Определить индексы всех седловых точек матрицы - C++
Для заданной матризы размером (N x M)определить индексы всех ее седловых точек.

Указать индексы седловых точек данной матрицы - C++
Элемент матрицы называется седловой точкой, если он является наименьшим в сторке и наибольшим в столбце или, наоборот, наибольшим в...

Найдите количество седловых точек заданной матрицы - C++
Задана матрица K, содержащая n строк и m столбцов. Седловой точкой этой матрицы назовем элемент, который одновременно является минимумом в...

Найти координаты всех седловых точек матрицы - C++
Помогите плз написать прогу: Используя динамический массив. В целочисленной прямоугольной матрице A(mxn) найти: - номер первой из...

Вывести номера всех седловых точек матрицы - C++
написала код который должен считать 1) сумму элементов тех строк матрицы, в которых хотя бы один элемент отрицательный, 2) выводить номера...

Номера строк и столбцов всех седловых точек матрицы - C++
Помогите немогу решить контрольную по с++ ,задание такое Дана целочисленная прямоугольная матрица.Определить: Номера строк и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
VASSUV
MiThEoN
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 418
Записей в блоге: 2
Завершенные тесты: 1
07.11.2010, 01:25 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include "stdafx.h"
#include <conio.h>
int _tmain(int argc, _TCHAR* argv[])
{
    int i,j,k,n=7;
    int a[7][7];
    for(i=0;i<n;i++){
        for(j=0;j<n;j++){
            scanf("%d",&a[i][j]);
        }
    }
    int min,max,indexmin;
    for(i=0;i<n;i++){
        max=a[i][0];
        for(j=1;j<n;j++){
            if(a[i][j]>=max){
                max=a[i][j];
            }
        }
        for(j=0;j<n;j++){
            if(a[i][j]==max){
                min=a[0][j];
                indexmin=0;
                for(k=0;k<n;k++){
                    if(a[k][j]<=min){
                                                                   if(indexmin==i)
                                                                                k=indexmin; 
                        indexmin=k;
                        min=a[k][j];
                    }
                }
                if(indexmin==i)
                {
                    printf("%d %d",i,j);
                    printf("\n");
                }
            }
        }
    }
    getch();
}
2
Verruckt
0 / 0 / 0
Регистрация: 25.11.2014
Сообщений: 12
05.04.2017, 16:19 #3
Алгоритм для поиска седловых точек (работает с несколькими минимумами)

1. Найти минимум в каждой строке. (Нарпимер строка 5 7 2 2, минимум - 2)
2. Объявить новый массив точно так же, как был объявлен первый массив.
2. В отдельном цикле организовать проверку, в которой каждый элемент текущей строки сравнивать с минимумом этой строки (Например: 5==2, 7==2, 2==2, 2==2). Если условие сработало, то в новом массиве поставить 1, если нет - то 0 (Например: 5 7 2 2 => 0 0 1 1)

В итоге из массива
7 8 2 2
4 3 5 1
Должен получиться массив
0 0 1 1
0 0 0 1

То же самое проделать с максимум по столбикам (найти максимум каждого столбика, и потом проверять каждый элемент столбика с максимум столбика и заполнить еще одну матрицу 1 или 0)

Должно получиться
1 1 0 1
0 0 1 0

И потом сравнивать две бинарные матрицы: если единицы совпали, то это седловая точка.
В данном примере седловой точкой является элемент[0][3] - 2
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2017, 16:19
Привет! Вот еще темы с ответами:

Вывести индексы всех седловых точек заданной матрицы - C++
1) Дана прямоугольная матрица. Вывести индексы всех седловых точек заданной матрицы. Элемент матрицы называется седловой точкой, если он...

Найти и вывести индексы всех седловых точек матрицы - C++
Собствено в чом суть задачи : Дана матрица размером 5х5 в ней нужно следующее : 1)найти суму елементов в тех строках где есть хотя бы...

Определить номера строк и столбцов всех седловых точек матрицы - C++
Помогите немогу решить контрольную по с++ ,задание такое Дана целочисленная прямоугольная матрица.Определить: 1) Количество...

Найти номера строк и столбцов всех Седловых точек матрицы - C++
Дана целочисленная прямоугольная матрица. Определить: 1.) сумму элементов в тех строках, которые содержат хотя бы один отрицательный...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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