Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 11.11.2021
Сообщений: 6
1

Перестановка строк матрицы согласно вектору транспозиции C++

11.11.2021, 01:21. Показов 1147. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Плохо понимаю матрицу. Помогите
Это должна быть функция!!!!!!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2021, 01:21
Ответы с готовыми решениями:

Переставить строки/столбцы матрицы по заданному вектору транспозиции
Помогите решить проблему с перестановкой строк матрицы по заданному вектору транспозиции;...

Присвоить вектору значения сумм строк матрицы
Всем привет, есть такое задание: Обязательно использовать динамическую память. По заданной матрице...

Перестановка строк матрицы согласно вектору транспозиции
Есть ли у кого-нибудь решение на эту задачку: перестановка СТРОК матрицы согласно вектору...

Перестановка строк матрицы по возрастанию среднего значения строк
Для перестановки строк матрицы таким образом, чтобы средние значения по строкам возрастали от...

1
Модератор
2639 / 1751 / 920
Регистрация: 16.10.2013
Сообщений: 5,067
Записей в блоге: 14
11.11.2021, 09:50 2
Лучший ответ Сообщение было отмечено tomay как решение

Решение

Возможно, как-то так:
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
#include <iostream>
#include <random>
#include <algorithm>
#include <iterator>
#include <vector>
 
// вывод матрицы
template<typename T>
void print(T **m, const std::size_t size) {
    for (int i = 0; i < size; i++) {
        std::copy(m[i], m[i]+size, std::ostream_iterator<T>(std::cout, "\t"));
        std::cout << "\n";
    }
    std::cout << "\n";
}
 
// перестановка строк матрицы согласно вектору транспозиции
template<typename T>
T** transpose(T **m, const std::size_t size, const std::vector<std::size_t> &v) {
    T** _tm = new T*[size];
    for(std::size_t i = 0; i < size; i++) {
        _tm[i] = new T[size];
    }
 
    for(int i = 0; i < size; i++) {
        auto it = std::find(v.begin(), v.end(), i+1);
        auto pos = std::distance(v.begin(), it);
        for (int j = 0; j < size; j++) {
            _tm[pos][j] = m[i][j];
        }
    }
 
    return _tm;
}
 
int main() {
    // матрица
    int **matrix = NULL;
    // размер матрицы
    constexpr std::size_t n = 5;
    // переменные для генерации матрицы
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<int> uid(-100, 100);
    auto generator = [&uid, &gen](){ return uid(gen); };
    // вектор транспозиции
    std::vector<std::size_t> tv{2, 4, 5, 1, 3};
 
    // выделение памяти
    matrix = new int*[n];
    for(int i = 0; i < n; i++) {
        matrix[i] = new int[n];
    }
 
    // генерация матрицы
    for (int i = 0; i < n; i++) {
        std::generate(matrix[i], matrix[i]+n, generator);
    }
 
    print(matrix, n);
    matrix = transpose(matrix, n, tv);
    std::cout << "before modifications:\n";
    print(matrix, n);
 
    // освобождение памяти
    for(int i = 0; i < n; i++) {
        delete[] matrix[i];
    }
    delete[] matrix;
 
    return 0;
}
1
11.11.2021, 09:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2021, 09:50
Помогаю со студенческими работами здесь

Перестановка строк матрицы по возрастанию среднего значения строк
Разработать программу для перестановки строк матрицы таким образом, чтобы средние значения по...

Сортировка строк матрицы C++ (перестановка строк)
Помогите пожалуйста, в матрице из целых чисел поменять местами первую строку и строку, содержащую...

Перестановка строк матрицы
5 заданий

Перестановка строк матрицы
Ребята помогите, если не сложно! Накипело задачку решить, а в С++ баран) Вот задание: ...

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

Перестановка строк матрицы
Прошу прощения если такая тема есть, поиск не помог мне её найти. Дана матрица MxN: Переставить...

Перестановка строк матрицы
Дана вещественная матрица размера n х m. Переставляя целиком ее строки и столбцы, нужно добиться...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru