PHP 程序:检查两个矩阵是否相等


2022年4月18日, Learn eTutorial
1432

如何检查两个矩阵是否相等?

要检查两个矩阵是否相等,我们首先需要找到数组的行数和列数,并比较相应的索引。例如,如果数组是

        1  3  1              1  3  1

a[] = 3  1  1     b[] =  3  1  1

        3  1  2               3  1  2

在这种情况下,矩阵将相等。

如何使用 PHP 检查两个矩阵是否相等?

在这个程序中,我们使用在代码本身中初始化的静态值。首先,我们必须初始化两个二维数组 a1 a2 我们必须使用内置函数 count() 将行数和列数赋值给变量 rowcol。之后,我们必须将值 true 赋值给变量 flag。然后将值 0 赋值给变量 i,并执行循环,直到条件 'i < row' 变为假,并在每次迭代中增加变量 i 的值。在循环块中,我们必须执行另一个循环,其中我们将值 0 赋值给变量 j,并执行循环,直到条件 'j < col' 变为假,并在每次迭代中增加变量 j 的值。在循环块中,我们必须检查条件 'a1[i][j] != a2[i][j]' 如果为真,则将值 false 赋值给变量 flag。循环完成后,我们必须检查条件:如果 flagtrue,则打印“矩阵相等”,否则打印“矩阵不相等”。

算法

步骤 1: 初始化两个二维数组 a1[]a2[]

步骤 2: 使用内置函数 count() 将行数和列数分配给变量 **row** 和 **col**

步骤 3: 打印数组 a1[]a2[] 中的元素

步骤 4: 创建一个值为 true 的临时变量 flag

步骤 5: 将值 0 赋值给变量 i,并执行子步骤,直到条件 'i < row' 变为假,并在每次迭代中增加变量 i 的值

        (i) 将值 0 赋值给变量 j,并执行子步骤,直到条件 'j < col' 变为假,并在每次迭代中增加变量 j 的值

            (a) 检查条件 'a1[i][j] != a2[i][j]',如果为真,则将值 false 赋值给变量 flag

步骤 6: 检查条件:如果 flagtrue,则打印“矩阵相等”,否则打印“矩阵不相等”

PHP 源代码

                                          <?php
$a1 = array(
    array(6, 7, 5),
    array(3, 5, 1),
    array(8, 3, 4)
);
$a2 = array(
    array(6, 7, 5),
    array(3, 5, 1),
    array(8, 3, 4)
);
$row = count($a1);
$col = count($a1[0]);
echo "First matrix: \n";
for ($i = 0; $i < $row; $i++) {
    for ($j = 0; $j < $col; $j++) {
        echo $a1[$i][$j] . " ";
    }
    echo "\n";
}
echo "Second matrix: \n";
for ($i = 0; $i < $row; $i++) {
    for ($j = 0; $j < $col; $j++) {
        echo $a2[$i][$j] . " ";
    }
    echo "\n";
}
$flag = true;
for ($i = 0; $i < $row; $i++) {
    for ($j = 0; $j < $col; $j++) {
        if ($a1[$i][$j] != $a2[$i][$j]) {
            $flag = false;
            break;
        }
    }
}
if ($flag)
    echo "Matrices are equal";
else
    echo "Matrices are not equal";
                                      

输出

First matrix:
6 7 5
3 5 1
8 3 4
Second matrix:
6 7 5
3 5 1
8 3 4
Matrices are equal