Dadas dos arrays, la tarea de multiplicarlas. Las arrays pueden ser cuadradas o rectangulares.
Ejemplos:
Input : mat1[][] = {{1, 2}, {3, 4}} mat2[][] = {{1, 1}, {1, 1}} Output : {{3, 3}, {7, 7}} Input : mat1[][] = {{2, 4}, {3, 4}} mat2[][] = {{1, 2}, {1, 3}} Output : {{6, 16}, {7, 18}}
Multiplicación de Arrays Cuadradas:
El siguiente programa multiplica dos arrays cuadradas de tamaño 4*4, podemos cambiar N por diferentes dimensiones.
Javascript
<script> // Javascript program to multiply // two square matrices. const N = 4; // This function multiplies // mat1[][] and mat2[][], and // stores the result in res[][] function multiply(mat1, mat2, res) { let i, j, k; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { res[i][j] = 0; for (k = 0; k < N; k++) res[i][j] += mat1[i][k] * mat2[k][j]; } } } // Driver Code let i, j; // To store result let res = new Array(N); for (let k = 0; k < N; k++) res[k] = new Array(N); let mat1 = [ [ 1, 1, 1, 1 ], [ 2, 2, 2, 2 ], [ 3, 3, 3, 3 ], [ 4, 4, 4, 4 ] ]; let mat2 = [ [ 1, 1, 1, 1 ], [ 2, 2, 2, 2 ], [ 3, 3, 3, 3 ], [ 4, 4, 4, 4 ] ]; multiply(mat1, mat2, res); document.write("Result matrix is <br>"); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) document.write(res[i][j] + " "); document.write("<br>"); } </script>
Result matrix is 10 10 10 10 20 20 20 20 30 30 30 30 40 40 40 40
Complejidad temporal: O(n 3 ). Se puede optimizar utilizando la multiplicación de arrays de Strassen
Espacio Auxiliar: O(n 2 )
Multiplicación de Arrays Rectangulares:
Usamos punteros en C para multiplicar a arrays. Consulte la siguiente publicación como requisito previo del código.
¿Cómo pasar una array 2D como parámetro en C?
Javascript
<script> // Javascript program to multiply two // rectangular matrices // Multiplies two matrices mat1[][] // and mat2[][] and prints result. // (m1) x (m2) and (n1) x (n2) are // dimensions of given matrices. function multiply(m1, m2, mat1, n1, n2, mat2) { let x, i, j; let res = new Array(m1); for (i = 0; i < m1; i++) res[i] = new Array(n2); for (i = 0; i < m1; i++) { for (j = 0; j < n2; j++) { res[i][j] = 0; for (x = 0; x < m2; x++) { res[i][j] += mat1[i][x] * mat2[x][j]; } } } for (i = 0; i < m1; i++) { for (j = 0; j < n2; j++) { document.write(res[i][j] + " "); } document.write("<br>"); } } // Driver code let mat1 = [ [ 2, 4 ], [ 3, 4 ] ]; let mat2 = [ [ 1, 2 ], [ 1, 3 ] ]; let m1 = 2, m2 = 2, n1 = 2, n2 = 2; // Function call multiply(m1, m2, mat1, n1, n2, mat2); </script>
6 16 7 18
Complejidad temporal: O(n 3 ). Se puede optimizar utilizando la multiplicación de arrays de Strassen
Espacio Auxiliar: O(m1 * n2)
Consulte el artículo completo sobre Programa para multiplicar dos arrays para obtener más detalles.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA