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

порядок перемножения матриц - C++

Восстановить пароль Регистрация
 
Zheka91
4 / 4 / 1
Регистрация: 22.11.2010
Сообщений: 101
10.05.2011, 15:22     порядок перемножения матриц #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
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
using namespace std;
#define Min(x,y)((x<y)?x:y)
void proizv(int *p,int dl) 
{
    int i,j,l,k,x,y;
    int **mas=new int*[dl];
    for(i=0;i<dl;i++)
        mas[i]=new int[dl];
    for(i=0;i<dl;i++)
        for(j=0;j<dl;j++)
            mas[i][j]=0;
    for(l=1;l<dl;l++)
    {
        for(i=0;i<dl-l;i++)
        {
            j=i+l;
            mas[i][j]=32767;
            for(k=i;k<j;k++)
            {
                x=mas[i][j];
                y=mas[i][k]+mas[k+1][j]+p[i-1]*p[k]*p[j];
                mas[i][j]=Min(x,y);
            }
        }
    }
    cout<<mas[0][dl-1]<<endl;
    for(i=0;i<dl;i++)
    {
        for(j=0;j<dl;j++)
            cout<<"\t"<<mas[i][j];
        cout<<endl;
    }
}
void main()
{
    int matr[]={1,10,2,5,3};
    proizv(matr,5);
}
Добавлено через 44 минуты
Цитата Сообщение от Zheka91 Посмотреть сообщение
написал прогу, тока не пойму что не так, правильный ответ находится на второй строке, помогите пожалуйсто
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
#include <iostream>
using namespace std;
#define Min(x,y)((x<y)?x:y)
void proizv(int *p,int dl) 
{
    int i,j,l,k,x,y;
    int **mas=new int*[dl];
    for(i=0;i<dl;i++)
        mas[i]=new int[dl];
    for(i=0;i<dl;i++)
        for(j=0;j<dl;j++)
            mas[i][j]=0;
    for(l=1;l<dl;l++)
    {
        for(i=0;i<dl-l;i++)
        {
            j=i+l;
            mas[i][j]=32767;
            for(k=i;k<j;k++)
            {
                x=mas[i][j];
                y=mas[i][k]+mas[k+1][j]+p[i-1]*p[k]*p[j];
                mas[i][j]=Min(x,y);
            }
        }
    }
    cout<<mas[0][dl-1]<<endl;
    for(i=0;i<dl;i++)
    {
        for(j=0;j<dl;j++)
            cout<<"\t"<<mas[i][j];
        cout<<endl;
    }
}
void main()
{
    int matr[]={1,10,2,5,3};
    proizv(matr,5);
}
C++
1
cout<<mas[0][dl-2]<<endl;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2011, 15:22     порядок перемножения матриц
Посмотрите здесь:

C++ Функция перемножения матриц.
C++ программа перемножения массивов
C++ создать класс pair (пара чисел); определить метод перемножения полей и операцию сложения пар
C++ Код обратной матрицы и перемножения матрицна с++
C++ Не могу написать программу перемножения матриц
Массив: перемножения двух матриц A,B размерности n*n C++
Написать процедуру перемножения матриц. C++
Алгоритм Штрассена для быстрого перемножения матриц C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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