Moltiplicazione di Matrici
Scorri per mostrare il menu
La moltiplicazione di matrici è un'operazione fondamentale in matematica e programmazione, soprattutto quando si lavora con array 2D, detti anche matrici. Per moltiplicare due matrici, è necessario seguire regole specifiche: il numero di colonne della prima matrice deve essere uguale al numero di righe della seconda matrice. Il risultato della moltiplicazione di una matrice m x n per una matrice n x p è una nuova matrice m x p. Ogni elemento della matrice risultante viene calcolato effettuando il prodotto scalare tra una riga della prima matrice e una colonna della seconda matrice.
MatrixMultiplication.cs
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758using 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(); } } } }
Per comprendere come funziona la moltiplicazione di matrici, seguire questi passaggi basati sul codice sopra:
- Verificare le dimensioni: la prima matrice (
matrixA) ha 3 colonne e la seconda matrice (matrixB) ha 3 righe, quindi la moltiplicazione è possibile; - Creare una matrice risultato con tante righe quante
matrixAe tante colonne quantematrixB; - Utilizzare tre cicli annidati:
- Il ciclo esterno itera su ogni riga della prima matrice;
- Il ciclo intermedio itera su ogni colonna della seconda matrice;
- Il ciclo interno calcola la somma dei prodotti per la riga e la colonna correnti, moltiplicando gli elementi corrispondenti e sommando i risultati;
- Assegnare il valore calcolato alla cella appropriata della matrice risultato;
- Stampare il risultato in un formato leggibile.
IncompatibleMatrices.cs
12345678910111213141516171819202122232425262728293031using 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. } } }
Questo esempio verifica se due matrici possono essere moltiplicate. Definisce matrixA (2×2) e matrixB (1×3), quindi confronta il numero di colonne della prima matrice con il numero di righe della seconda. Poiché questi valori non coincidono, il programma stampa un messaggio di incompatibilità e si interrompe. Dimostrazione della validazione delle dimensioni delle matrici prima di eseguire la moltiplicazione.
Moltiplicazione di matrici è il processo di combinazione di due matrici per produrre una nuova matrice, moltiplicando le righe della prima matrice per le colonne della seconda matrice e sommando i prodotti.
1. Quali sono i requisiti per moltiplicare due matrici?
2. Quanti cicli annidati sono generalmente necessari per la moltiplicazione di matrici?
3. Cosa succede se le matrici hanno dimensioni incompatibili?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione