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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Mikooo
2 / 2 / 0
Регистрация: 24.02.2011
Сообщений: 74
#1

Умножение матриц - C++

08.03.2011, 18:29. Просмотров 1913. Ответов 21
Метки нет (Все метки)

надо получить матрицу А*В
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2011, 18:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Умножение матриц (C++):

Умножение треугольных матриц«Методы обработки разреженных матриц» - C++
Нужно перемножить треугольные матрицы в обычном виде и в свёрнутом. С обычным проблем нет. Доступ к элементам свёрнутой матрицы...

Умножение матриц - C++
int **calculation3(int **mat1,int **mat2,int q,int e,int w,int t){ int m,ww=0,x,z; for(x=0;x<q;x++){ for(z=0;z<w;z++){ ww=0;...

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

Умножение матриц - C++
#include <iostream> using namespace std; int main(int argc, const char * argv) { int **C; int n,k; /*...

Умножение матриц - C++
#include <iostream> #include <ctime> // в ней функция time #include <conio.h> #include <stdio.h> using namespace std; void...

Умножение матриц - C++
Помогите пожалуйста написать прогу для умножения матриц с использованием malloc. Юзал обычные проги для умножения, но вот с malloc что то...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IrineK
Заблокирован
08.03.2011, 19:12 #2
C++
1
2
3
4
5
6
7
8
9
10
.....
 
for(i=0;i<N;i++)
    for(j=0;j<N;j++)
        {
        C[i][j]=0.0;
        for(k=0;k<N;k++)
            C[i][j]+=A[i][k]*B[k][j];
        }
......
Mikooo
2 / 2 / 0
Регистрация: 24.02.2011
Сообщений: 74
08.03.2011, 19:17  [ТС] #3
оно должно быть С=А*В
Петррр
5948 / 3385 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
08.03.2011, 19:18 #4
На сколько помню с точки зрения математики перменожение матриц - это не просто умножение каждого члена на каждый член из другой матрицы
Mikooo
2 / 2 / 0
Регистрация: 24.02.2011
Сообщений: 74
08.03.2011, 19:18  [ТС] #5
а можеш написать программу полнастью
IrineK
Заблокирован
08.03.2011, 19:19 #6
оно должно быть С=А*В
Что я тебе и отправила
Петррр
5948 / 3385 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
08.03.2011, 19:26 #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
ты кому говоришь?

Добавлено через 6 минут
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
#include <iostream>
#include <conio.h>
 
int main()
{
    int a[5][5];
    int b[5][5];
    int c[5][5];
    int i, j;
    for(i = 0; i < 5; i++)
        for(j = 0; j < 5; j++)
        {
            a[i][j] = rand();
            b[i][j] = rand();
        }
 
    for(i = 0; i < 5; i++)
    {
        for(j =0; j < 5; j++)
        {
            std::cout << a[i][j] << " ";
        }
        std::cout << std::endl;
    }
    std::cout << "\n-------------\n";
    for(i = 0; i < 5; i++)
    {
        for(j =0; j < 5; j++)
        {
            std::cout << b[i][j] << " ";
        }
        std::cout << std::endl;
    }
    std::cout << "\n-------------\n";
    for(i = 0; i < 5; i++)
    {
        for(j =0; j < 5; j++)
        {
            c[i][j] = a[i][j] * b[i][j];
            std::cout << c[i][j] << " ";
        }
        std::cout << std::endl;
    }
    _getch();
    return 0;
}
IrineK
Заблокирован
08.03.2011, 19:27 #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
ОК, вот как можно проще:
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
#include <iostream>
#include <time.h>
#define N 3
using namespace std;
 
void showAr(double Ar[][N])
{int v,w;
for(v=0;v<N;v++)
{ for(w=0;w<N;w++)
        cout<<Ar[v][w]<<" ";
cout<<endl;
}
cout<<endl;
}
 
int main()
{
    srand(time(NULL));
    double A[N][N],B[N][N],C[N][N];
    int i,j,k;
    for(i=0;i<N;i++)
            for(j=0;j<N;j++)
            {   A[i][j]=rand()%20+1;
                B[i][j]=rand()%20+1;
            }
    cout<<"Array A:\n";
        showAr(A);
    cout<<"Array B:\n";
        showAr(B);
    
    for(i=0;i<N;i++)
            for(j=0;j<N;j++)
            {
                C[i][j]=0.0;
                for(k=0;k<N;k++)
                    C[i][j]+=A[i][k]*B[k][j];
            }
    
    cout<<"Array C:\n";
        showAr(C);
 
    cin.get();
    return 0;
}
Вопросы, Mikooo?
Спрашивай. Отвечу ответы.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
08.03.2011, 19:29 #9
Цитата Сообщение от Петррр Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
for(i = 0; i < 5; i++)
 {
 for(j =0; j < 5; j++)
{
 c[i][j] = a[i][j] * b[i][j];
 std::cout << c[i][j] << " ";
 }
 std::cout << std::endl;
}
Разве это верно ?
IrineK
Заблокирован
08.03.2011, 19:29 #10
Петррр
У вас ошибка - элементы матрицы С равны не просто произведению соответствуюших элементов А и В, а свертке по строке и столбцу.
Петррр
5948 / 3385 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
08.03.2011, 19:33 #11
а что не так?

Добавлено через 59 секунд
Цитата Сообщение от Петррр Посмотреть сообщение
На сколько помню с точки зрения математики перменожение матриц - это не просто умножение каждого члена на каждый член из другой матрицы
я написал.

Mikooo, по этому поводу промолчал(а)
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
08.03.2011, 19:34 #12
Цитата Сообщение от Петррр Посмотреть сообщение
а что не так?
Все http://ru.wikipedia.org/wiki/%D0%A3%...BD.D0.B8.D0.B5
Петррр
5948 / 3385 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
08.03.2011, 19:34 #13
поэтому я пошел легким путем
silent_1991
08.03.2011, 19:35
  #14

Не по теме:

Цитата Сообщение от Петррр Посмотреть сообщение
Mikooo, по этому поводу промолчал(а)
Он и мне на пожелание удачи не ответил, и что теперь?

Петррр
5948 / 3385 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
08.03.2011, 19:36 #15
asics, спасибо по математике слава богу 5

Добавлено через 42 секунды
Цитата Сообщение от silent_1991 Посмотреть сообщение
и что теперь
ничего.. раз не отвечает значит умный и пускай делает сам
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2011, 19:36
Привет! Вот еще темы с ответами:

Умножение матриц - C++
Доброго всем времени суток! Нужна Ваша помощь. Задали сделать задачку на C++ в консоли - умножение матриц 10 на 10 с помощью...

Умножение матриц - C++
Здравствуйте помогите пожалуйста, не понимаю почему не получается перемножить матрицы. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Умножение матриц - C++
Помогите с умножением матриц создал две идентичные таблицы 3х3 и тепер хочу вывести матрицу этих двух таблиц, но в переменной suma...

Умножение матриц - C++
Мне нужно перемножить матрицы скажите что не провильно,почему она не работает for (int i=0; i&lt; StrToInt(Edit1-&gt;Text);i++) for (int...


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

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

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