Перемножение матриц c#

программирование математика C#

Пожалуйста, помогите разобраться в перемножении матриц в программировании. Не могу понять, почему именно три цикла. В первых двух понятно все, во внешнем проходим по строкам, в следующем по столбцам, а дальше??? Объясните просто, на сколько это возможно.
//перемножение матриц
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
for (int k = 0; k < m; k++)
{
Mat_C[i, j] = Mat_C[i,j]+ Mat_A[i, k] * Mat_B[k, j];
}
}
}
Я новичок и этот момент обязательно надо понять.
И еще просьба, подскажите литературу хорошую, простую в понимании. Сейчас в универе изучаем ООП и идет очень тяжко(
Ответы:
Чтобы найти элемент C[i, j] произведения матриц, нужно элементы i-ой строки матрицы А умножить на элементы j-го столбца матрицы В и сложить полученные произведения.
Например, у нас произведение двух матриц 3 на 3.
C[1,1] = A[1,1]*B[1,1] + A[1,2]*B[2,1] + A[1,3]*B[3,1]
C[1,2] = A[1,1]*B[1,2] + A[1,2]*B[2,2] + A[1,3]*B[3,2]
C[1,3] = A[1,1]*B[1,3] + A[1,2]*B[2,3] + A[1,3]*B[3,3]
C[2,1] = A[2,1]*B[1,1] + A[2,2]*B[2,1] + A[2,3]*B[3,1]
C[2,2] = A[2,1]*B[1,2] + A[2,2]*B[2,2] + A[2,3]*B[3,2]
C[2,3] = A[2,1]*B[1,3] + A[2,2]*B[2,3] + A[2,3]*B[3,3]
C[3,1] = A[3,1]*B[1,1] + A[3,2]*B[2,1] + A[3,3]*B[3,1]
C[3,2] = A[3,1]*B[1,2] + A[3,2]*B[2,2] + A[3,3]*B[3,2]
C[3,3] = A[3,1]*B[1,3] + A[3,2]*B[2,3] + A[3,3]*B[3,3]
Внешний цикл идет по строкам матриц А и С, второй по столбцам В и С, а внутренний
по столбцам матрицы А и строкам матрицы В.


10 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.