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

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

Войти
Регистрация
Восстановить пароль
 
лалка123
2 / 2 / 0
Регистрация: 09.12.2014
Сообщений: 112
#1

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

30.06.2015, 13:52. Просмотров 325. Ответов 8
Метки нет (Все метки)

Дана целочисленная матрица размера M × N, элементы которой могут
принимать значения от 0 до 100. Различные строки матрицы назовем
похожими, если совпадают множества чисел, встречающихся в этих
строках. Найти количество строк, похожих на первую строку данной
матрицы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2015, 13:52     Найти количество строк, похожих на первую строку данной матрицы
Посмотрите здесь:

C++ Найти первую повторяющуюся строку в массиве строк
C++ Определить количество классов эквивалентных строк данной прямоугольной матрицы. Строки считать эквивалентными, если равны суммы их элементов.
C++ Определить количество классов эквивалентных строк данной прямоугольной матрицы
C++ Найти количество строк в максимальном множестве попарно непохожих строк заданной матрицы
Найти количество столбцов, похожих на последний столбец данной матрицы. C++
Двумерная матрица. Найти количество похожих строк. C++
Матрицы: поменять местами первую строку и строку, содержащую максимальный элемент C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6193 / 5796 / 1877
Регистрация: 18.12.2011
Сообщений: 14,809
Завершенные тесты: 1
30.06.2015, 14:49     Найти количество строк, похожих на первую строку данной матрицы #2
Берем за основу.
Образцы (шаблоны) программ для типовых задач
и меняем функцию Procces
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
// пример обработки матрицы - подсчет похожих строк
//
#include <algorithm> // нужно для функции sort
int Process( int ** M, size_t n, size_t m ) 
{
    int* t1=new int[m];
    int* t2=new int[n];
    for ( size_t j = 0; j < m; ++j )
            t1[j] = M[0][j]; // копируем первую строку
    sort(t1,t1+m); // сортируем копию
    int count=0; // счетчик похожих строк
    for ( size_t i = 1; i < n; ++i ) 
   {
       for ( size_t j = 0; j < m; ++j )
            t2[j] = M[i][j]; // копируем i-ю строку
       sort(t2,t2+m); // сортируем копию
       size_t j=0;
        for (; j < m; ++j )
            if(t2[j]!= t1[j])
                 break;
        if(j==m)
          count++; // j равно m тольео если все элементы совпали
    }
    delete[] t1;
    delete[] t2;
    return count;
}
лалка123
2 / 2 / 0
Регистрация: 09.12.2014
Сообщений: 112
30.06.2015, 15:07  [ТС]     Найти количество строк, похожих на первую строку данной матрицы #3
что - то не получается(, выдает ошибку в строке :
Цитата Сообщение от zss Посмотреть сообщение
sort(t1,t1+m);
Ilot
Модератор
Эксперт С++
1784 / 1159 / 224
Регистрация: 16.05.2013
Сообщений: 3,050
Записей в блоге: 5
Завершенные тесты: 1
30.06.2015, 15:10     Найти количество строк, похожих на первую строку данной матрицы #4
C++
1
std::sort(t1,t1+m);
лалка123
2 / 2 / 0
Регистрация: 09.12.2014
Сообщений: 112
30.06.2015, 15:21  [ТС]     Найти количество строк, похожих на первую строку данной матрицы #5
не понимаю уже, после всего, выдает ошибку: 1) cannot find -lbgi
2) ld returned 1 exit status
zss
Модератор
Эксперт С++
6193 / 5796 / 1877
Регистрация: 18.12.2011
Сообщений: 14,809
Завершенные тесты: 1
30.06.2015, 16:16     Найти количество строк, похожих на первую строку данной матрицы #6
Приводите полный код того, что компилируете и номер строки, в которой ошибка.
лалка123
2 / 2 / 0
Регистрация: 09.12.2014
Сообщений: 112
30.06.2015, 17:12  [ТС]     Найти количество строк, похожих на первую строку данной матрицы #7
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
#include <algorithm> 
 
int Process( int ** M, size_t n, size_t m ) 
 
{
    int* t1=new int[m];
    int* t2=new int[n];
    for ( size_t j = 0; j < m; ++j )
            t1[j] = M[0][j];
   std::sort(t1,t1+m); 
    int count=0;
    for ( size_t i = 1; i < n; ++i ) 
   {
       for ( size_t j = 0; j < m; ++j )
            t2[j] = M[i][j]; 
   std::sort(t2,t2+m); 
       size_t j=0;
        for (; j < m; ++j )
            if(t2[j]!= t1[j])
                 break;
        if(j==m)
          count++; 
    }
    delete[] t1;
    delete[] t2;
    return count;
   
}
zss
Модератор
Эксперт С++
6193 / 5796 / 1877
Регистрация: 18.12.2011
Сообщений: 14,809
Завершенные тесты: 1
30.06.2015, 17:28     Найти количество строк, похожих на первую строку данной матрицы #8
А вот это кто будет вставлять:
Образцы (шаблоны) программ для типовых задач
Вроде, я понятно написал. Скопировать образец и в нем ЗАМЕНИТЬ функцию Process.

Вам еще придется подправить код функции main().
Вы обязаны разобраться, как.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2015, 17:35     Найти количество строк, похожих на первую строку данной матрицы
Еще ссылки по теме:

C++ В матрице из целых чисел поменять местами первую строку и строку, содержащую самый большой по абсолютной величине элемент матрицы
C++ В матрице из действительных чисел поменять местами первую строку и строку, содержащую наименьший элемент матрицы
Найти количество строк, похожих на первую строку данной матрицы C++
Поменять местами первую строку матрицы и строку, содержащую максимальный отрицательный элемент C++
Найти первую строку матрицы, в которой имеется отрицательный элемент, и упорядочить её по убыванию C++

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

Или воспользуйтесь поиском по форуму:
лалка123
2 / 2 / 0
Регистрация: 09.12.2014
Сообщений: 112
30.06.2015, 17:35  [ТС]     Найти количество строк, похожих на первую строку данной матрицы #9
спасибо
Yandex
Объявления
30.06.2015, 17:35     Найти количество строк, похожих на первую строку данной матрицы
Ответ Создать тему
Опции темы

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