Programa PHP 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. 

PHP

<?php
// PHP program to multiply two 
// square matrices.
  
// This function multiplies mat1[][] and 
// mat2[][], and stores the result in res[][]
function multiply(&$mat1, &$mat2, &$res)
{
    $N = 4;
    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
$mat1 = array(array(1, 1, 1, 1),
              array(2, 2, 2, 2),
              array(3, 3, 3, 3),
              array(4, 4, 4, 4));
  
$mat2 = array(array(1, 1, 1, 1),
              array(2, 2, 2, 2),
              array(3, 3, 3, 3),
              array(4, 4, 4, 4));
  
multiply($mat1, $mat2, $res);
$N = 4;
echo ("Result matrix is 
");
for ($i = 0; $i < $N; $i++)
{
    for ($j = 0; $j < $N; $j++)
    {
        echo ($res[$i][$j]);
        echo(" ");
    }
    echo ("
");
}
  
// This code is contributed 
// by Shivi_Aggarwal 
?>
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? 

PHP

<?php
// PHP 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) 
{ 
    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++) 
        { 
            echo $res[$i][$j] . " "; 
        } 
        echo "
"; 
    } 
} 
  
// Driver code 
$mat1 = array( array( 2, 4 ), array( 3, 4 )); 
$mat2 = array( array( 1, 2 ), array( 1, 3 )); 
$m1 = 2;
$m2 = 2;
$n1 = 2;
$n2 = 2; 
  
//Function call
multiply($m1, $m2, $mat1, $n1, $n2, $mat2); 
  
// This code is contributed by rathbhupendra
?>
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 *