можно так:
#include
#include
#include
#include
#include
using namespace std;
double random_double(double a, double b) {
random_device rd;
mt19937 gen(rd());
uniform_real_distribution dis(a, b);
return dis(gen);
}
void generate_row(vector& row, double a, double b) {
generate(row.begin(), row.end(), [=]() { return random_double(a, b); });
}
void print_matrix(const vector>& matrix) {
for (const auto& row : matrix) {
for (double num : row) {
cout << fixed << setprecision(2) << num << " ";
}
cout << endl;
}
}
int main() {
int m, n;
double a, b;
cout << "Введите количество строк (m): ";
cin >> m;
cout << "Введите количество столбцов (n): ";
cin >> n;
cout << "Введите нижнюю границу интервала (a): ";
cin >> a;
cout << "Введите верхнюю границу интервала (b): ";
cin >> b;
vector> matrix(m, vector(n));
for_each(matrix.begin(), matrix.end(), [&](vector& row) {
generate_row(row, a, b);
});
print_matrix(matrix);
return 0;
}
вещественные числа a и b. После чего в программе генерируется матрица m * n
заполненная случайными вещественными числами из интервала [a, b]. Данная матрица
выводится на экран. После чего выводится преобразованная матрица в соответствии с вариантом задания.
4. Уплотнить заданную матрицу, удалив из нее столбцы, заполненные нулями.