Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 25.09.2018
Сообщений: 2
1

Вычисление произведения матриц (не проходит по времени)

07.11.2018, 21:14. Показов 1206. Ответов 1
Метки нет (Все метки)

Заданы две целочисленные матрицы A и B. Матрица A состоит из N строк и M столбцов, Матрица B состоит из M строк и P столбцов. Требуется вычислить произведение данных матриц A*B.


Необходимое время: 1 сек.
Что сделать, что бы время сократить?

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 <iostream>
using namespace std;
int main()
{
    int N,M,P,i,j,k;
    cin>>N>>M>>P;
    int X=max(N,M);
    int Y=max(M,P);
    int A[N][M], B[M][P], C[X][Y];
    for (i=0;i<N;i++)
        for (j=0;j<M;j++)
        cin>>A[i][j];
    for (i=0;i<M;i++)
        for (j=0;j<P;j++)
        cin>>B[i][j];
    for (i=0;i<X;i++)
    {
        for (j=0;j<Y;j++)
        {
            C[i][j]=0;
            for(k=0;k<min(X,Y);k++)
                C[i][j]+=A[i][k]*B[k][j];
            cout<<C[i][j]<<' ';
        }
    cout<<endl;
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2018, 21:14
Ответы с готовыми решениями:

Вычисление степени матрицы, вычисления произведения двух матриц, вычисление суммы двух матриц
Здравствуйте, помогите решить, пожалуйста: Заданы две квадратные матрицы А и В. Вычислить матрицу...

Вычисление произведения двух матриц
Написать программу вычисления произведения двух матриц A(K,L), B(K,L), K &lt;= 40, L &lt;= 30.

Массив: Вычисление произведения двух матриц
8. Найти произведение k квадратных матриц A1, A2,…, Ak. Функция: вычисление произведения двух...

Вычисление произведения матриц на составляющие им вектора
помогите пожалуйста макрос составить заданы две матрицы А(4,4) и В(3,3) и два вектора С(4) и D...

1
74 / 58 / 31
Регистрация: 20.03.2017
Сообщений: 351
08.11.2018, 08:26 2
Лучший ответ Сообщение было отмечено ksufko как решение

Решение

ksufko, Вообще то время ещё и от размеров умножаемых матриц зависит, чем больше матрицы тем дольше будет произведение производиться, если только брать какой-то конкретный случай для размеров и с ним экспериментировать. Вы даже не указали с какими значениями N, M, P у вас такое время получилось и где оно у вас вообще засекается в коде, что-то я не увидел. Также вы неверно выбираете значения X, Y для матрицы С, её размер будет, если A*B = C[N][P], если B*A = C[M][M].
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2018, 08:26

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Вычисление произведения произвольных прямоугольных матриц
Здравствуйте. Мне нужно написать код для двух произвольных прямоугольных матриц. Ограничений в...

Вычисление произведения двух матриц (динамический массив)
Здравствуйте, помогите пожалуйста написать программу, в которой нужно обеспечить: 1. ввод исходных...

Вычисление произведения двух матриц (матрицы реализовать в виде динамических массивов)
написать программу для вычисления произведения двух матриц.матрицы реализовать в виде динамических...

Используя функцию произведения двух матриц, найдите произведение трех матриц А(3,4) В(4,3) С(3,3)
Используя функцию произведения двух матриц, найдите произведение трех матриц А(3,4) В(4,3) С(3,3).


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

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

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