In matematica, la moltiplicazione di matrici o il prodotto di matrice è un'operazione binaria che produce una matrice da due matrici. La definizione è motivata da equazioni lineari e trasformazioni lineari su vettori, che hanno numerose applicazioni in matematica applicata, fisica e ingegneria. Più in dettaglio, se A è una matrice n × m e B è una matrice m × p, il loro prodotto matrice AB è una matrice n × p, in cui le voci m lungo una riga di A vengono moltiplicate per le voci m in basso a a colonne di B e sommate per produrre una voce di AB. Quando due trasformazioni lineari sono rappresentate da matrici, il prodotto matrice rappresenta la composizione delle due trasformazioni.
Fonte: Wikipedia
In altre parole, per moltiplicare due matrici, ad esempio:
1 2 3 1 4
2 3 4 × 3 1 =
3 4 5 4 6
Innanzitutto, prendi la riga numero 1 nella prima matrice, la colonna numero 1 nella seconda matrice e moltiplica 1
per 1
, 2
per 3
e 3
per 4
.
1 × 1 = 1
2 × 3 = 6
3 × 4 = 12
Ora aggiungili insieme per ottenere il tuo primo oggetto:
1 2 3 1 4 19
2 3 4 × 3 1 =
3 4 5 4 6
Per il secondo numero nella prima colonna del risultato, dovrai prendere la riga numero 2 anziché la riga numero 1 e fare la stessa cosa.
1 × 2 = 2
3 × 3 = 9
4 × 4 = 16
= 27
Dopo aver eseguito l'intera prima colonna, il risultato è simile al seguente:
1 2 3 1 4 19
2 3 4 × 3 1 = 27
3 4 5 4 6 35
Ora, fai di nuovo la stessa cosa esatta, ma prendi la seconda colonna invece della prima colonna, risultando in:
1 2 3 1 4 19 24
2 3 4 × 3 1 = 27 35
3 4 5 4 6 35 46
Il tuo compito
Date due matrici (dimensioni massime 200x200), contenenti numeri nell'intervallo da -10000 a 10000, dove il numero di colonne sulla prima è uguale al numero di righe sulla seconda, moltiplica la prima per la seconda. (La moltiplicazione di matrici non è commutativa.)
Puoi prendere input e fornire output come una matrice di array (o equivalente), una matrice (se la tua lingua ha quel formato) o una stringa multilinea.
Non è possibile utilizzare alcun built-in per la moltiplicazione di matrici.
Casi test
1 2 1 2 3 4 5 13 16 19 22 25
3 4 × 6 7 8 9 10 = 27 34 41 48 55
5 6 41 52 63 74 85
2 3 3 5 15 13
3 4 × 3 1 = 21 19
5 3 11 27
1 3 1 3 7 15
9 3 × 2 4 = 15 39
1 -1000 -1999 -3997
Ricorda, questo è code-golf , quindi vince il codice con il minor numero di byte.