要计算两个二维数组的乘积,首先我们必须找出数组的行数和列数,然后将两个矩阵中对应的行和列相乘并相加。例如,如果数组是
2 3 8 1 5 1
a[] = 3 2 1 b[] = 6 1 5
3 5 6 4 1 2
那么结果将是
2*1+3*6+8*4 2*5+3*1+8*1 2*1+3*5+8*2
3*1+2*6+1*4 3*5+2*1+1*1 3*1+2*5+1*5
3*1+5*6+6*4 3*5+5*1+6*1 3*1+5*5+6*2
即
52 21 33
19 18 15
57 26 40
在此程序中,我们使用在代码本身中初始化的静态值。首先,我们必须初始化两个二维数组 **a1** 和 **a2**,我们必须使用内置函数 `count()` 将行数和列数赋给变量 **row** 和 **col**。然后,我们必须创建一个空数组 **mul[]** 来存储数组 **a1[]** 和 **a2[]** 的乘积。然后将值 **0** 赋给变量 **i**,并执行循环直到条件 **'i < row'** 变为假,并在每次迭代中增加变量 **i** 的值。在循环块中,我们必须执行另一个循环,其中我们必须将值 **0** 赋给变量 **j**,并执行循环直到条件 **'j < col'** 变为假,并在每次迭代中增加变量 **j** 的值。在循环块中,我们必须执行另一个循环,为此,首先将值 **0** 赋给变量 k,并执行循环直到条件 **'k < row'** 变为假,并在每次迭代中增加变量 k 的值。在循环块中,我们必须将计算出的值 **'mul[i][j] + a1[i][k] * a2[k][j]'** 赋给数组 **mul[i][j]**。循环完成后,我们可以打印数组 **mul[]** 的值作为数组 **a1[]** 和 **a2[]** 的乘积。
步骤 1:使用值初始化两个二维数组 **a1[]** 和 **a2[]**
步骤 2: 使用内置函数 count() 将行数和列数分配给变量 **row** 和 **col**
步骤 3:创建一个空数组 **mul[]** 来存储 **a1[]** 和 **a2[]** 的乘积结果
步骤 4:使用 for 循环打印数组 **a1[]** 和 **a2[]** 的元素
步骤 5:为了计算数组 **a1[]** 和 **a2[]** 的乘积,首先执行 `for 循环`,将值 **0** 赋给变量 **i**,并执行子步骤直到条件 **'i < row'** 变为假,并在每次迭代中增加变量 **i** 的值
(i) 将值 **0** 赋给变量 **j**,并执行子步骤 ii 直到条件 **'j < col'** 变为假,并在每次迭代中增加变量 **j** 的值
(ii) 将值 **0** 赋给变量 **k**,并执行子步骤直到条件 **'k < row'** 变为假,并在每次迭代中增加变量 **k** 的值
(a) 将计算出的值 **'mul[i][j] + a1[i][k] * a2[k][j]'** 赋给数组 **mul[i][j]**
步骤 6:打印数组 **mul[]** 的值作为数组 **a1[]** 和 **a2[]** 的乘积
<?php
$a1 = array(
array(1, 2, 9),
array(4, 5, 6),
array(7, 2, 3)
);
$a2 = array(
array(9, 8, 7),
array(6, 5, 4),
array(3, 2, 1)
);
$row = count($a1);
$col = count($a1[0]);
$mul = array();
echo "The first matrix is: \n";
for ($i = 0; $i < $row; $i++) {
for ($j = 0; $j < $col; $j++) {
echo $a1[$i][$j] . " ";
}
echo "\n";
}
echo "The second matrix is: \n";
for ($i = 0; $i < $row; $i++) {
for ($j = 0; $j < $col; $j++) {
echo $a2[$i][$j] . " ";
}
echo "\n";
}
for ($i = 0; $i < $row; $i++) {
for ($j = 0; $j < $col; $j++) {
for ($k = 0; $k < $row; $k++) {
$mul[$i][$j] = $mul[$i][$j] + $a1[$i][$k] * $a2[$k][$j];
}
}
}
echo "Product of two matrices is: \n";
for ($i = 0; $i < $row; $i++) {
for ($j = 0; $j < $col; $j++) {
echo $mul[$i][$j] . " ";
}
echo "\n";
}
?>
The first matrix is: 1 2 9 4 5 6 7 2 3 The second matrix is: 9 8 7 6 5 4 3 2 1 Product of two matrices is: 48 36 24 84 69 54 84 72 60