Главная /
Программирование /
Рассмотрим реализацию матрицы вещественных чисел размера m строк на n столбцов при помощи линейного массива, в котором хранятся сначала элементы нулевой строки матрицы, затем первой, второй и т.д., в конце - элементы (m-1)-й строки: int m, n; // Размеры м
Рассмотрим реализацию матрицы вещественных чисел
размера m
строк на n
столбцов
при помощи линейного массива,
в котором хранятся сначала элементы нулевой строки матрицы,
затем первой, второй и т.д., в конце - элементы (m-1)-й строки:
int m, n; // Размеры матрицы: число строк, столбцов
. . .
double* a = new double[m*n];
// a[i*n + j] -- элемент i-й строки и j-го столбца
Правильно ли работает следующая функция транспонирования
матрицы, при выполнении которой строки матрицы должны стать
столбцами, столбцы - строками, а матрица размера
m
на n
превратиться в матрицу размера
n
на m
?
void transp(double* a, int m, int n) {
for (int i = 0; i < m; ++i) {
for (int j = 0; j < n; ++j) {
int idx0 = i*n + j;
int idx1 = j*m + i;
if (idx0 < idx1) {
// Меняем местами 2 элемента
double tmp = a[idx0];
a[idx0] = a[idx1];
a[idx1] = tmp;
}
}
}
}
вопрос
Правильный ответ:
Функция работает во всех случаях правильно.
Функция работает правильно только для квадратных матриц.
Функция работает правильно только для квадратных матриц и
для матриц, в которых либо число строк, либо число столбцов
равно единице.
Сложность вопроса
69
Сложность курса: Программирование
84
Оценить вопрос
Комментарии:
Аноним
Это очень простой тест по интуиту.
10 сен 2018
Аноним
ответ подошёл
09 май 2018
Аноним
Гранд мерси за гдз по intuit.
10 фев 2018
Другие ответы на вопросы из темы программирование интуит.
- # К трехзначным десятичным числам (строкам длины 3 из десятичных цифр) применяется алгоритм RADIX-сортировки сначала по младшей цифре, затем по средней и в конце по старшей. Исходный массив содержит следующие числа: 122, 232, 171, 198, 401, 035, 077, 201, 199, 400. Каким будет содержимое массива после выполнения первых двух шагов сортировки (т.е. после сортировки по младшей и средней цифрам)?
- # Рассмотрим алгоритм сортировки слиянием с использованием дополнительной памяти. Используется восходящая схема реализации алгоритма. Алгоритм применяется к массиву длины 100. На каждом шаге сливаются пары соседних упорядоченных подмассивов длины не больше k и получаются упорядоченные подмассивы длины не больше 2k; первый шаг выполняется при k=1. Сколько всего шагов будет выполнено?
- # Интерполяционный многочлен в форме Ньютона, построенный по узлам x0, x1, ..., xn, представляется формулой pn(x) = a0 + a1(x-x0) + a1(x-x0)(x-x1) + ... + an(x-x0)(x-x1)...(x-xn-1) Сколько действий необходимо выполнить, чтобы вычислить его значение в некоторой точке x=t?
- # Чему будет равно значение переменной n в результате выполнения следующего фрагмента программы? Процессор имеет 32-разрядную архитектуру. double a[10][2]; int n, m; n = (int)(a+1); m = (int) a; n -= m;
- # Эквивалентны ли в языке C/C++ типы Matrix и Transform, заданные в приведенном ниже фрагменте программы? typedef double Matrix[3][3]; typedef double Transform[3][3];