求一个 3×3 矩阵主对角线元素之和。
本题要求计算一个 矩阵主对角线(从左上到右下)上所有元素的和。
主对角线:在方阵中,行索引等于列索引的位置,即满足 的元素。
对于 3×3 矩阵,主对角线元素为:
(第 1 行第 1 列)
(第 2 行第 2 列)
(第 3 行第 3 列)
程序使用双重 for 循环遍历整个矩阵,在内层判断 if (i == j),若成立则将该元素累加到 sum 中。
给定矩阵:
主对角线元素为:1(位置 [0][0])、5([1][1])、8([2][2])
和为:
程序输出:
14对于任意 方阵,主对角线元素个数恒为;
主对角线索引规律:
副对角线索引规律:,满足;
若同时求主副对角线之和且 为奇数,中心元素 会被重复计算,需减去一次。
例如,同时计算主副对角线之和的通用逻辑:
int sum1 = 0, sum2 = 0;
for (int i = 0; i < n; i++) {
sum1 += a[i][i]; // 主对角线
sum2 += a[i][n - 1 - i]; // 副对角线
}
// 若 n 为奇数,中心元素被加了两次
if (n % 2 == 1) {
int center = a[n/2][n/2];
total = sum1 + sum2 - center;
} else {
total = sum1 + sum2;
}public class Demo {
public static void main(String[] args) {
double sum = 0;
int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 7, 8 } };
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i == j) {
sum += array[i][j];
}
}
}
System.out.println(sum); // 输出 14.0
}
}延伸知识:
在线性代数中,矩阵的迹(Trace) 定义为主对角线元素之和,记作。迹具有重要性质,如,广泛应用于物理、机器学习等领域。本题实质是计算 3 阶矩阵的迹。