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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 38, средняя оценка - 4.68
artlinenn
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 58
#1

Разреженные матрицы - C++

14.03.2013, 17:49. Просмотров 5498. Ответов 18
Метки нет (Все метки)

Даны две разреженные матрицы общего вида. Сложить их и результат занести в разреженную матрицу CSS.
с меня +1)) очень нужно! спасибо заранее!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2013, 17:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разреженные матрицы (C++):

Разреженные матрицы - C++
Почитал теории по разреженным матрицам, как понял это такие матрицы, где большинство элементов равны 0. Теперь пытаюсь разобраться в...

Разреженные матрицы - C++
Как в ражреженной матрице найти количество различных элементов.

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

Разреженные матрицы - C++
Добрый день, уважаемые пользователи. Задание по "Разреженным матрицам" через динамический список. Собственно сам список: ...

Матрицы. Найти и распечатать сумму элементов 5-го столбца матрицы А и сумму элементов последней строки матрицы В - C++
Даны две матрицы А(mxn)и В(m1xn1).программа находит и распечатывает сумму элементов 5-го столбца матрицы А и сумму элементов последней...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
GoldenId
126 / 124 / 32
Регистрация: 11.11.2010
Сообщений: 683
Записей в блоге: 13
Завершенные тесты: 1
14.03.2013, 18:29 #2
Каким образом связаны разреженные матрицы и CSS?
artlinenn
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 58
14.03.2013, 18:41  [ТС] #3
GoldenId, Это матрица такая, есть матрицы CSR и CSS.
CSR - Это матрицы с разреженным пространством строк. Грубо говоря, некоторые строки нулевые.
а про CSS мало что знаю(
Tmin100
6 / 6 / 0
Регистрация: 12.10.2012
Сообщений: 71
15.03.2013, 22:21 #4
Задача №4 из второй лабы?)
У меня похожая:
Даны две разреженные структурно симметричные матрицы. Из одной матрицы вычесть другую и результат занести в разреженную матрицу CSS.

Вообще не знаю что такое CSS матрица, гугл ничего интересного не поведал. Про структурно симметричные тоже не совсем ясно...
GoldenId
126 / 124 / 32
Регистрация: 11.11.2010
Сообщений: 683
Записей в блоге: 13
Завершенные тесты: 1
16.03.2013, 17:37 #5
Какого размера матрицы?
Tmin100
6 / 6 / 0
Регистрация: 12.10.2012
Сообщений: 71
16.03.2013, 17:55 #6
Размер N, т.е. устанавливается пользователем
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
16.03.2013, 18:11 #7
честно говоря про CSR и CSS матрицы ничего не знаю, но как с разреженными работать идейка есть - создать класс разреженная матрица, полями которой будет размерность и вектор ненулевых элементов, ненулевой элемент описывается структурой pair в которой первое поле это также структура pair- cоответственно координаты (строка, столбец), а второе поле это собственно значение данной ячейки матрицы. Ну и остатся перегрузить оператор сложения матриц и вуаля))
GoldenId
126 / 124 / 32
Регистрация: 11.11.2010
Сообщений: 683
Записей в блоге: 13
Завершенные тесты: 1
16.03.2013, 20:01 #8
Цитата Сообщение от Кудаив Посмотреть сообщение
честно говоря про CSR и CSS матрицы ничего не знаю, но как с разреженными работать идейка есть - создать класс разреженная матрица, полями которой будет размерность и вектор ненулевых элементов, ненулевой элемент описывается структурой pair в которой первое поле это также структура pair- cоответственно координаты (строка, столбец), а второе поле это собственно значение данной ячейки матрицы. Ну и остатся перегрузить оператор сложения матриц и вуаля))
Действительно, я к тому и спросил про размер матриц. Если матрицы N ~ 10 000 000 000, а элементов там от силы 100, то делать стоит именно как сказал Кудаив, а если N воплне реальное, N ~ 10 000, то можно и стандартным способом.
Привет от капитана.
artlinenn
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 58
16.03.2013, 20:06  [ТС] #9
Хотелось бы увидеть, что получиться где N - реальное число. Вашим методом)
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
16.03.2013, 20:17 #10
есть такая книга "С++ Мастер-класс. 85 нетривиальных проектов, решений и задач", одна из первых задач про разреженные матрицы и решение есть
Tmin100
6 / 6 / 0
Регистрация: 12.10.2012
Сообщений: 71
16.03.2013, 22:02 #11
Почитаем, но думаю в данной задаче можно ограничиться матрицами 100х100, мне просто не совсем ясно, что такое CSS матрица, и что такое структурно симметричная матрица.
GoldenId
126 / 124 / 32
Регистрация: 11.11.2010
Сообщений: 683
Записей в блоге: 13
Завершенные тесты: 1
18.03.2013, 00:42 #12
Цитата Сообщение от artlinenn Посмотреть сообщение
Хотелось бы увидеть, что получиться где N - реальное число. Вашим методом)
Честно? Активничаю с полнедели, а от "Мне нужно написать класс, с двумя методами, которые..." уже устал
artlinenn
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 58
18.03.2013, 07:57  [ТС] #13
Цитата Сообщение от GoldenId Посмотреть сообщение
Честно? Активничаю с полнедели, а от "Мне нужно написать класс, с двумя методами, которые..." уже устал
за готовый код с объяснениями готов заплатить) пиши в ЛС!
GoldenId
126 / 124 / 32
Регистрация: 11.11.2010
Сообщений: 683
Записей в блоге: 13
Завершенные тесты: 1
18.03.2013, 09:41 #14
artlinenn, я Вас умоляю
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
#include <iostream>
 
using namespace std;
 
void main()
{
    const int n = 100;
    float a[ n ][ n ];
    float b[ n ][ n ];
 
    float c[ n ][ n ];
 
    int i, j;
 
    // каким-то образом ввести матрицы a и b
    // если хочется проверить чувство юмора преподавателя,
    // можно из стандартного ввода:
    cout << "Введите a: " << endl;
    for( i = 0; i < n; i++ )
        for( j = 0; j < n; j++ )
            cin >> a[ i ][ j ];
    // аналогично для b
 
    // прогнать двойной цикл для сложения
    for( i = 0; i < n; i++ )
        for( j = 0; j < n; j++ )
            c[ i ][ j ] = a[ i ][ j ] + b[ i ][ j ];
 
    // передать результат c, куда следует
    // а вы уж сами решите, куда... следует
}
Не больше не меньше. Я не злой, мне просто dx по dy
DIEZEL-man
13 / 13 / 0
Регистрация: 17.02.2013
Сообщений: 54
18.03.2013, 17:14 #15
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
#include<iostream>
#include<iomanip.h>
using namespace std;
int main () {
srand(time(0));
int n, k, l;
cout<<"Vvedite poryadok matric A, B, CSS:"<<endl;
cin>>n;
int a[n][n], b[n][n], css[n][n];
for(int i=0; i<n; i++){
        for(int j=0; j<n; j++){
                a[i][j]=0;}}
for(int i=0; i<n; i++){
        for(int j=0; j<n; j++){
                b[i][j]=0;}}
for(int i=0; i<n; i++){
        for(int j=0; j<n; j++){k=rand()%2; l=rand()%2;
        if(i+k < n){ if(j+l < n) {
                a[i+k][j+l]=50-(rand()%100);}}}}
for(int i=0; i<n; i++){
        for(int j=0; j<n; j++){k=rand()%2; l=rand()%2;
        if(i+k < n){ if(j+l < n) {
                b[i+k][j+l]=50-(rand()%100);}}}}
for(int i=0; i<n; i++){
        for(int j=0; j<n; j++){
                css[i][j]=a[i][j]+b[i][j];}}
cout<<"Matrix A:"<<endl;
for(int i=0; i<n; i++){
        cout<<endl;
        for(int j=0; j<n; j++){
                cout<<setw(3)<<a[i][j];}}
cout<<endl<<endl<<endl;
cout<<"Matrix B:"<<endl;
for(int i=0; i<n; i++){
        cout<<endl;
        for(int j=0; j<n; j++){
                cout<<setw(3)<<b[i][j];}}
cout<<endl<<endl<<endl;
cout<<"Matrix CSS(result A+B):"<<endl;
for(int i=0; i<n; i++){
        cout<<endl;
        for(int j=0; j<n; j++){
                cout<<setw(3)<<css[i][j];}}
cout<<endl;
system("pause");    
return 0;   
}
Дополненная версия*
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2013, 17:14
Привет! Вот еще темы с ответами:

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

Поменять большие элементы в строке матрицы с маленькими элементами этой же матрицы - C++
Дана мне задача надо заменить большие элементы в строке матрицы с маленькими элементами этой же матрицы. Помогите пацаны

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

Алгоритм обработки матрицы: Нахождение максимального элемента матрицы и его номера. - C++
Алгоритм обработки матрицы: Нахождение максимального элемента матрицы и его номера.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.03.2013, 17:14
Ответ Создать тему
Опции темы

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