En mathématiques, la multiplication matricielle ou le produit matriciel est une opération binaire qui produit une matrice à partir de deux matrices. La définition est motivée par des équations linéaires et des transformations linéaires sur des vecteurs, qui ont de nombreuses applications en mathématiques appliquées, en physique et en génie. Plus en détail, si A est une matrice n × m et B est une matrice m × p, leur produit matriciel AB est une matrice n × p, dans lequel les m entrées sur une ligne de A sont multipliées par les m entrées vers le bas a colonnes de B et additionnées pour produire une entrée de AB. Lorsque deux transformations linéaires sont représentées par des matrices, le produit matriciel représente la composition des deux transformations.
Source: Wikipedia
En d'autres termes, pour multiplier deux matrices, par exemple:
1 2 3 1 4
2 3 4 × 3 1 =
3 4 5 4 6
Tout d'abord, prenez la ligne numéro 1 dans la première matrice, la colonne numéro 1 dans la deuxième matrice et multipliez 1
par 1
, 2
par 3
et 3
par 4
.
1 × 1 = 1
2 × 3 = 6
3 × 4 = 12
Maintenant, ajoutez-les ensemble pour obtenir votre premier article:
1 2 3 1 4 19
2 3 4 × 3 1 =
3 4 5 4 6
Pour le deuxième numéro de la première colonne du résultat, vous devrez prendre la ligne numéro 2 au lieu de la ligne numéro 1 et faire la même chose.
1 × 2 = 2
3 × 3 = 9
4 × 4 = 16
= 27
Après avoir fait la première colonne entière, le résultat ressemble à ceci:
1 2 3 1 4 19
2 3 4 × 3 1 = 27
3 4 5 4 6 35
Maintenant, refaites exactement la même chose, mais prenez la deuxième colonne au lieu de la première, ce qui donne:
1 2 3 1 4 19 24
2 3 4 × 3 1 = 27 35
3 4 5 4 6 35 46
Ta tâche
Étant donné deux matrices (dimensions maximales 200x200), contenant des nombres compris entre -10000 et 10000, où le nombre de colonnes sur la première est égal au nombre de lignes sur la seconde, multipliez la première par la seconde. (La multiplication matricielle n'est pas commutative.)
Vous pouvez prendre des entrées et donner des sorties sous forme de tableau de tableaux (ou équivalent), de matrice (si votre langue a ce format) ou de chaîne multiligne.
Vous ne pouvez pas utiliser de modules intégrés pour la multiplication de matrice.
Cas de 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
N'oubliez pas qu'il s'agit de code-golf , donc le code avec le moins d'octets gagne.