#include <iostream>
#include <vector>
using namespace std;
const int N = 110;
vector<vector<double>> Q
{
{0.1, 0.8, 0.2, 0.6, 0.1},
{0.7, 0.2, 0.1, 0.1, 0.8},
{0.8, 0.2, 0.6, 0.2, 0.1}
};
vector<vector<double>> R
{
{0.3, 0.7, 1.0},
{1.0, 0.3, 0.2},
{0.3, 1.0, 1.0},
{1.0, 0.3, 0.2},
{0.3, 1.0, 0.7}
};
vector<vector<double>> compose(vector<vector<double>> &Q, vector<vector<double>> &R)
{
int n = Q.size(), m = R.size(), p = R[0].size();
vector<vector<double>> res;
for (int i = 0;i < n;i++)
{
vector<double> row;
for (int j = 0;j < p;j++)
{
double Min=9999;
double Max=-999;
for (int k = 0;k < m;k++)
{
Min = min(Q[i][k], R[k][j]);
Max = max(Max, Min);
}
rows.push_back(Max);
}
res.push_back(row);
}
return res;
}
int main()
{
vector<vector<double>> A = { {0.4,0.5,0.8} };
vector<vector<double>> res=compose(Q,R);
cout << "Q·R:" << endl;
for (auto i : res)
{
for (auto j : i)
{
cout << j << " ";
}
cout << endl;
}
vector<vector<double>> ans = compose(A, res);
cout << "\nA·R`:" << endl;
for (auto i : ans)
{
for (auto j : i)
{
cout << j << " ";
}
cout << endl;
}
return 0;
}
矩阵的合成
最新推荐文章于 2023-04-13 10:23:46 发布