Matrisemultiplikasjon
Sveip for å vise menyen
Matrisemultiplikasjon er en grunnleggende operasjon innen matematikk og programmering, spesielt når man arbeider med 2D-arrays, også kalt matriser. For å multiplisere to matriser må du følge spesifikke regler: antall kolonner i den første matrisen må være lik antall rader i den andre matrisen. Resultatet av å multiplisere en m x n matrise med en n x p matrise er en ny m x p matrise. Hvert element i resultatmatrisen beregnes ved å ta skalarproduktet av en rad fra den første matrisen og en kolonne fra den andre matrisen.
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(); } } } }
For å forstå hvordan matrisemultiplikasjon fungerer, følg disse trinnene basert på koden over:
- Sjekk dimensjonene: den første matrisen (
matrixA) har 3 kolonner, og den andre matrisen (matrixB) har 3 rader, noe som betyr at multiplikasjon er mulig; - Opprett en resultatmatrise med like mange rader som
matrixAog like mange kolonner sommatrixB; - Bruk tre nestede løkker:
- Den ytterste løkken itererer over hver rad i den første matrisen;
- Den midterste løkken itererer over hver kolonne i den andre matrisen;
- Den innerste løkken beregner summen av produkter for gjeldende rad og kolonne, ved å multiplisere tilsvarende elementer og summere dem;
- Tildel den beregnede verdien til riktig celle i resultatmatrisen;
- Skriv ut resultatet i et lesbart format.
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. } } }
Dette eksemplet sjekker om to matriser kan multipliseres. Det definerer matrixA (2×2) og matrixB (1×3), og sammenligner deretter antall kolonner i den første matrisen med antall rader i den andre. Siden disse verdiene ikke stemmer overens, skriver programmet ut en melding om inkompatibilitet og stopper. Det viser hvordan man kan validere dimensjonene til matriser før multiplikasjon utføres.
Matrisemultiplikasjon er prosessen med å kombinere to matriser for å produsere en ny matrise ved å multiplisere rader i den første matrisen med kolonner i den andre matrisen og summere produktene.
1. Hva er kravene for å multiplisere to matriser?
2. Hvor mange nestede løkker trengs vanligvis for matrisemultiplikasjon?
3. Hva skjer hvis matrisene har inkompatible størrelser?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår