我們將用 JavaScript 編寫一個(gè)程序來有效計(jì)算矩陣對角線的總和。為此,我們將利用循環(huán)結(jié)構(gòu)來迭代矩陣并添加位于與對角線對應(yīng)的位置的元素。通過利用矩陣的數(shù)學(xué)特性,我們可以最大限度地減少求對角線之和所需的計(jì)算量。通過這種方法,我們將能夠以計(jì)算有效的方式處理各種大小的矩陣。
方法
要計(jì)算矩陣的對角線之和,我們需要將主對角線(左上到右下)和次對角線(右上到下)上的元素值相加-左)
可以使用雙循環(huán)方法,其中一個(gè)循環(huán)遍歷行,第二個(gè)循環(huán)遍歷列以訪問對角線上的元素。
我們可以保留兩個(gè)變量來分別存儲(chǔ)主對角線上和次對角線上的元素之和。
要訪問主對角線上的元素,我們需要添加當(dāng)前的行索引和列索引,而對于次對角線上的元素,我們需要從行索引中減去列索引。
李>
最后,我們返回兩個(gè)變量的總和作為結(jié)果,這將給出矩陣兩個(gè)對角線上元素的總和。
示例
這是一個(gè)有效計(jì)算矩陣對角線之和的 JavaScript 程序示例 –
function diagonalSum(matrix) {
let sum = 0;
let n = matrix.length;
for (let i = 0; i < n; i++) {
sum += matrix[i][i];
sum += matrix[i][n - i - 1];
}
if (n % 2 !== 0) {
let mid = Math.floor(n / 2);
sum -= matrix[mid][mid];
}
return sum;
}
const matrix = [[1, 2, 3],[4, 5, 6], [7, 8, 9]];
console.log(diagonalSum(matrix));
登錄后復(fù)制
說明
初始化變量sum來存儲(chǔ)對角線之和,初始化變量n來存儲(chǔ)矩陣中的行數(shù)。
使用 for 循環(huán)迭代矩陣,將對角線的值添加到 sum 中。 對于每次迭代 i,我們添加主對角線 matrix[ i][i] 和反對角矩陣[i][n – i – 1]。
如果矩陣的行數(shù)是奇數(shù),我們減去中間的值matrix[mid][mid](其中mid是中間行索引,使用 Math.floor(n / 2)) 計(jì)算,因?yàn)樗鼤?huì)被添加兩次。
返回總和的值。
該算法的時(shí)間復(fù)雜度為 O(n),使其成為計(jì)算矩陣對角線和的有效解決方案。
以上就是JavaScript 程序可有效計(jì)算矩陣對角線之和的詳細(xì)內(nèi)容,更多請關(guān)注www.92cms.cn其它相關(guān)文章!






