Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
aidoqa
587 / 100 / 2
Регистрация: 08.02.2011
Сообщений: 839
1

Массив: Получить новую матрицу следующим способом: умножением Min каждой строки первой матрицы на Max соответствующего столбца второй

11.04.2012, 21:11. Просмотров 889. Ответов 7
Метки нет (Все метки)

Пусть даны две вещественные матрицы порядка N. Получить новую матрицу следующим способом: умножением минимального элемента каждой строки первой матрицы на наибольший элемент соответствующего столбца второй матрицы.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2012, 21:11
Ответы с готовыми решениями:

Получить новую матрицу умножением элементов каждой строки первой матрицы
Даны две действительные квадратные матрицы порядка n.Получить новую матрицу...

Даны две действительные квадратные матрицы порядка n. Получить новую матрицу: а) умножением элементов каждой строки первой матрицы на наибольш
Даны две действительные квадратные матрицы порядка n. Получить новую...

Получить новую матрицу умножением элементов первой матрицы на наибольшее из значений элементов соответствующий строки второй матрицы
Даны две действительные квадратные матрицы порядка n. Получить новую матрицу...

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

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

7
panicwassano
594 / 562 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
11.04.2012, 23:11 2
и в чем сложность? матрицу умножаются, строку на столбец. Максимум и минимум через цикл можно найти
0
aidoqa
587 / 100 / 2
Регистрация: 08.02.2011
Сообщений: 839
12.04.2012, 15:51  [ТС] 3
как это приблизительно можно сделать?
0
aidoqa
587 / 100 / 2
Регистрация: 08.02.2011
Сообщений: 839
13.04.2012, 16:16  [ТС] 4
подскажите кто нибудь?
0
-=ЮрА=-
Заблокирован
Автор FAQ
17.04.2012, 19:26 5
aidoqa, C или С++?
0
aidoqa
587 / 100 / 2
Регистрация: 08.02.2011
Сообщений: 839
17.04.2012, 20:04  [ТС] 6
на C++
0
-=ЮрА=-
Заблокирован
Автор FAQ
18.04.2012, 17:05 7
Цитата Сообщение от aidoqa Посмотреть сообщение
на C++
-Лови
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
 
//ÔóГ*êöèÿ ГЇГҐГ·Г*ГІГ*ГҐГІ Г*Г* ГЅГЄГ°Г*Г*ГҐ ñîäåðæèìîå âåêòîðГ* Г§Г*Г*Г·ГҐГ*ГЁГ© vec
//n - ÷èñëî ýëåìåГ*òîâ âåêòîðå
void out(int n, double * vec);
//ÔóГ*êöèÿ ГЇГҐГ·Г*ГІГ*ГҐГІ Г*Г* ГЅГЄГ°Г*Г*ГҐ ñîäåðæèìîå Г¬Г*òðèöû arr
//m - ÷èñëî ñòðîê Гў Г¬Г*òðèöå
//n - ÷èñëî ñòîëáöîâ Гў Г¬Г*òðèöå
void out(int m, int n, double ** arr);
//ÔóГ*êöèÿ âîçâðГ*Г№Г*ГҐГІ min ýëåìåГ*ГІ Гў i-îé ñòðîêå Г¬Г*òðèöû arr
double getMinInRow(int i, int n, double ** arr);
//ÔóГ*êöèÿ âîçâðГ*Г№Г*ГҐГІ max ýëåìåГ*ГІ Гў j-îì ñòîëáöå Г¬Г*òðèöû arr
double getMaxInCol(int j, int m, double ** arr);
 
int main()
{
    int i, j, N;
    srand(time(0));//ГќГІГ® Г*ГіГ¦Г*Г® äëÿ ГЈГҐГ*ГҐГ°Г*öèè ñëó÷Г*Г©Г*ûõ Г·ГЁГ±ГҐГ«
    //ÓêГ*Г§Г*òåëè Г*Г* Г*Г*ГёГЁ Г¬Г*òðèöû
    double ** arr1 = NULL;
    double ** arr2 = NULL;
    //ÓêГ*Г§Г*òåëü Г*Г* âûõîäГ*îé âåêòîð
    double * res   = NULL;
    cout<<"Enter N : ";cin>>N;
    arr1 = new double *[N];//Âûäåëÿåì ГЇГ*ìÿòü ïîä ГіГЄГ*Г§Г*òåëè Г*Г* ñòðîêè Г¬Г*òðèöû 1
    arr2 = new double *[N];//Âûäåëÿåì ГЇГ*ìÿòü ïîä ГіГЄГ*Г§Г*òåëè Г*Г* ñòðîêè Г¬Г*òðèöû 2
    res = new double[N];////Âûäåëÿåì ГЇГ*ìÿòü ïîä ýëåìåГ*ГІГ» âåêòîðГ* res
    for(i = 0; i < N; i++)
    {
        arr1[i] = new double[N];//Âûäåëÿåì ГЇГ*ìÿòü ïîä i-ГіГѕ ñòðîêó Г¬Г*òðèöû 1
        arr2[i] = new double[N];//Âûäåëÿåì ГЇГ*ìÿòü ïîä i-ГіГѕ ñòðîêó Г¬Г*òðèöû 2
        for(j = 0; j < N; j++)
        {
            //ГѓГҐГ*åðèðóåì ñëó÷ ГўГҐГ№ГҐГ±ГІГўГҐГ*Г*ûå Г·ГЁГ±Г«Г* Гў äèГ*ГЇГ*çîГ*ГҐ -N/2 N/2
            arr1[i][j] = (rand()%(10*N) - 5*N)/10.0;
            arr2[i][j] = (rand()%(10*N) - 5*N)/10.0;
        }
    }
    //Ñ÷èòГ*ГҐГ¬ Г*Г*ГёГҐ ïðîèèçâåäåГ*ГЁГҐ:
    //ìèГ*ГЁГ¬Г*ëüГ*îãî ýëåìåГ*ГІГ* ГЄГ*æäîé ñòðîêè ïåðâîé Г¬Г*òðèöû Г*Г* 
    //Г*Г*èáîëüøèé ýëåìåГ*ГІ ñîîòâåòñòâóþùåãî ñòîëáöГ* âòîðîé Г¬Г*òðèöû
    for(i = 0; i < N; i++)
        res[i] = getMinInRow(i, N, arr1)*getMaxInCol(i, N, arr2);
    //ГЏГҐГ·Г*ГІГ*ГҐГ¬ Г±ГЈГҐГ*åðèðîâГ*Г*Г*ûå Г¬Г*Г±Г±ГЁГўГ»
    cout<<"Array 1 :\n";
    out(N,N,arr1);
    cout<<"Array 2 :\n";
    out(N,N,arr2);
    //Âûâîäèì Г*Г*Гё âåòîð ñòîëáåö îòâåòîâ
    cout<<"Result  :\n";
    out(N,res);
    system("pause");
    //Г—ГЁГ±ГІГЁГ¬ ГЇГ*ìÿòü ïðè âûõîäå
    for(i = N - 1; 0 < i; i--)
    {
        delete [] arr1[i];
        delete [] arr2[i];
    }
    delete [] arr1;
    delete [] arr2;
    delete [] res;
    return 0;
}
 
void out(int n, double * vec)
{
    for(int j = 0; j < n; j++)
        cout<<setw((vec[j] < 0 ? 3 : 4))<<setfill(' ')<<vec[j]<<" ";
    cout<<endl;
}
 
void out(int m, int n, double ** arr)
{
    for(int i = 0; i < m; i++)
        out(n, arr[i]);
}
 
double getMinInRow(int i, int n, double ** arr)
{
    //Г‚Г*Г*Г·Г*ëå ïîëГ*ГЈГ*ГҐГ¬ Г·ГІГ® ìèГ* ýëåìåГ*ГІ Г°Г*ГўГҐГ*
    double vmin = arr[i][0];//ïåðâîìó ýëåìåГ*ГІГі i-Г© ñòðîêè
    for(int j = 1; j < n; j++)
    {
        //Èùåì ìèГ* ýëåìåГ*ГІ
        if(arr[i][j] < vmin)
            vmin = arr[i][j];
    }
    return vmin;
}
 
double getMaxInCol(int j, int m, double ** arr)
{
    //Г‚Г*Г*Г·Г*ëå ïîëГ*ГЈГ*ГҐГ¬ Г·ГІГ® ìèГ* ýëåìåГ*ГІ Г°Г*ГўГҐГ*
    double vmax = arr[0][j];//ïåðâîìó ýëåìåГ*ГІГі j-ГЈГ® ñòîëáöГ*
    for(int i = 1; i < m; i++)
    {
        //Èùåì Г¬Г*ГЄГ± ýëåìåГ*ГІ
        if(vmax < arr[i][j])
            vmax = arr[i][j];
    }
    return vmax;
}
1
Миниатюры
Массив: Получить новую матрицу следующим способом: умножением Min каждой строки первой матрицы на Max соответствующего столбца второй  
-=ЮрА=-
Заблокирован
Автор FAQ
18.04.2012, 17:11 8
Проверим пару значений для пущей верности
Мин элемент в матрице 1 в первой строке -2,3
Макс элемент в матрице 2 в первом столбце 2,5
Произведение -1,9*2,5 = -5,75

Мин элемент в матрице 1 в последней строке -3,4
Макс элемент в матрице 2 в последнем столбце -0,2
Произведение -3,4*0,2 = 0,68
Как видим хначения аналогичны значениям на скрине вверху
1
18.04.2012, 17:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2012, 17:11

1)Даны две действительные квадратные матрицы порядка n. Получить новую матрицу : А) умножение элементов каждой строки первой матрицы на наибольшее из
1)Даны две действительные квадратные матрицы порядка n. Получить новую матрицу...

Даны две действительные квадратные матрицы порядка n. Получить новую матрицу: путем умножения элементов каждой строки первой матрицы на наибольшее из
Даны две действительные квадратные матрицы порядка n. Получить новую матрицу:...

умножением элементов каждой строки первой матрицы на наибольший из элементов соответствующей строки второй матрицы
получить новую матрицу умножением элементов каждой строки первой матрицы на...


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

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

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