Programa Javascript para multiplicar dos arrays

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>
Producción

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>
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *