Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Множення матриць | Робота з двовимірними масивами
Масиви C#

Множення матриць

Свайпніть щоб показати меню

Множення матриць — це фундаментальна операція в математиці та програмуванні, особливо при роботі з двовимірними масивами, які також називають матрицями. Щоб перемножити дві матриці, необхідно дотримуватися певних правил: кількість стовпців у першій матриці повинна дорівнювати кількості рядків у другій матриці. Результатом множення матриці розміру m x n на матрицю розміру n x p буде нова матриця розміру m x p. Кожен елемент у результатній матриці обчислюється як скалярний добуток рядка з першої матриці та стовпця з другої матриці.

MatrixMultiplication.cs

MatrixMultiplication.cs

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
using System; namespace ConsoleApp { public class MatrixMultiplication { public static void Main(string[] args) { int[,] matrixA = { {1, 2, 3}, {4, 5, 6} }; int[,] matrixB = { {7, 8}, {9, 10}, {11, 12} }; int rowsA = matrixA.GetLength(0); int colsA = matrixA.GetLength(1); int rowsB = matrixB.GetLength(0); int colsB = matrixB.GetLength(1); if (colsA != rowsB) { Console.WriteLine("Cannot multiply: incompatible matrix sizes."); return; } int[,] result = new int[rowsA, colsB]; for (int i = 0; i < rowsA; i++) { for (int j = 0; j < colsB; j++) { int sum = 0; for (int k = 0; k < colsA; k++) { sum += matrixA[i, k] * matrixB[k, j]; } result[i, j] = sum; } } Console.WriteLine("Result of matrix multiplication:"); for (int i = 0; i < rowsA; i++) { for (int j = 0; j < colsB; j++) { Console.Write(result[i, j] + " "); } Console.WriteLine(); } } } }

Щоб зрозуміти, як працює множення матриць, дотримуйтесь наступних кроків на основі коду вище:

  1. Перевірте розміри: перша матриця (matrixA) має 3 стовпці, а друга матриця (matrixB) має 3 рядки, отже, множення можливе;
  2. Створіть результатну матрицю з такою ж кількістю рядків, як у matrixA, і такою ж кількістю стовпців, як у matrixB;
  3. Використовуйте три вкладені цикли:
    • Зовнішній цикл перебирає кожен рядок першої матриці;
    • Середній цикл перебирає кожен стовпець другої матриці;
    • Внутрішній цикл обчислює суму добутків для поточного рядка і стовпця, перемножуючи відповідні елементи та підсумовуючи їх;
  4. Запишіть обчислене значення у відповідну комірку результатної матриці;
  5. Виведіть результат у зручному для читання вигляді.
IncompatibleMatrices.cs

IncompatibleMatrices.cs

12345678910111213141516171819202122232425262728293031
using System; namespace ConsoleApp { public class IncompatibleMatrices { public static void Main(string[] args) { int[,] matrixA = { {1, 2}, {3, 4} }; int[,] matrixB = { {5, 6, 7} }; int colsA = matrixA.GetLength(1); int rowsB = matrixB.GetLength(0); if (colsA != rowsB) { Console.WriteLine("Cannot multiply: the number of columns in the first matrix does not match the number of rows in the second matrix."); return; } // This code will not be reached because the matrices are incompatible. } } }

У цьому прикладі перевіряється, чи можна перемножити дві матриці. Визначаються matrixA (2×2) та matrixB (1×3), після чого порівнюється кількість стовпців у першій матриці з кількістю рядків у другій. Оскільки ці значення не збігаються, програма виводить повідомлення про несумісність і завершує роботу. Демонстрація перевірки розмірностей матриць перед множенням.

Note
Визначення

Множення матриць — це процес об'єднання двох матриць для отримання нової матриці шляхом множення рядків першої матриці на стовпці другої та підсумовування добутків.

1. Які вимоги для множення двох матриць?

2. Скільки вкладених циклів зазвичай потрібно для множення матриць?

3. Що відбувається, якщо матриці мають несумісні розміри?

question mark

Які вимоги для множення двох матриць?

Виберіть правильну відповідь

question mark

Скільки вкладених циклів зазвичай потрібно для множення матриць?

Виберіть правильну відповідь

question mark

Що відбувається, якщо матриці мають несумісні розміри?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 5

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 4. Розділ 5
some-alt