Проверяет понимание операции умножения матриц, фундаментальной для линейной алгебры и многих IT-областей.
Умножение матриц — это бинарная операция, которая не является поэлементной. Для двух матриц A и B, где A имеет размерность m x n (m строк, n столбцов), а B — n x p, результатом будет матрица C размерностью m x p. Каждый элемент c_ij матрицы C вычисляется как скалярное произведение i-й строки матрицы A и j-го столбца матрицы B.
Формула для элемента c_ij: c_ij = sum_{k=1}^{n} a_ik * b_kj. Рассмотрим пример:
A = [[1, 2], [3, 4]] // 2x2
B = [[5, 6], [7, 8]] // 2x2
C = A * B
c_11 = 1*5 + 2*7 = 5 + 14 = 19
c_12 = 1*6 + 2*8 = 6 + 16 = 22
c_21 = 3*5 + 4*7 = 15 + 28 = 43
c_22 = 3*6 + 4*8 = 18 + 32 = 50
C = [[19, 22], [43, 50]]Умножение матриц широко используется в компьютерной графике для трансформаций (поворот, масштабирование), в машинном обучении для вычислений в нейронных сетях, в обработке изображений и криптографии. Например, в нейронных сетях веса слоев представлены матрицами, а проход вперед — это умножение входного вектора на матрицу весов.
Умножение матриц — ключевая операция для работы с многомерными данными и преобразованиями. Ее понимание необходимо для разработки алгоритмов в области data science, компьютерного зрения и 3D-графики.