我有一个 N*N 矩阵。现在我想知道这个矩阵的对角线差。这个解决方案的最佳方法是什么?
我正在尝试使用给定的方法:
比如 3*3 矩阵说它是:
11 15 85
66 72 21
14 21 47
对角线简单公式将是:
firstD= (11+72+47) = 130
secondD = (85+72+14)= 171
diagonalDiff = |firstD - secondD| = |130-171| = 41
如果我计算每一行,例如首先找出
firstD
(第一行的第一个值+第二行的第二个值+第三行的第三个值+..)。这是我的想法。谁能告诉我最好的方法?
最佳答案
使用多维数组对矩阵进行建模并对其进行迭代。最简单的方法应该如下:
<?
$matrix = array(array(1,2,3),array(4,5,6),array(7,8,9)); //Insert or define your matrix here..
$n = count($matrix); //Size of matrix, thanks to VolkerK
$firstD = 0;
$lastD = 0;
for($i = 0; $i < $n; $i++){
$firstD += $matrix[$i][$i];
$lastD += $matrix[$i][$n-$i-1];
}
echo $firstD."\n";
echo $lastD;
关于php - 如何计算PHP中的对角线差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36978131/