স্কয়ার ম্যাট্রিক্সের প্রধান ডায়াগোনাল (top-left থেকে bottom-right) উপাদানগুলোর গুণফল বের করা।
উদাহরণ
Matrix: [1, 3, 4, 2] [4, 5, 3, 5] [5, 2, 6, 4] [8, 2, 9, 3] প্রধান ডায়াগোনাল: 1, 5, 6, 3 গুণফল: 1 × 5 × 6 × 3 = 90
সমাধান
const diagonalProduct = (matrix) => {
// স্কয়ার ম্যাট্রিক্স চেক
const n = matrix.length;
if (!matrix.every(row => row.length === n)) {
throw new Error('Matrix must be square');
}
let product = 1;
for (let i = 0; i < n; i++) {
product *= matrix[i][i]; // i == j হলে প্রধান ডায়াগোনাল
}
return product;
};
// সেকেন্ডারি ডায়াগোনাল (top-right থেকে bottom-left)
const secondaryDiagonalProduct = (matrix) => {
const n = matrix.length;
let product = 1;
for (let i = 0; i < n; i++) {
product *= matrix[i][n - 1 - i];
}
return product;
};
// উভয় ডায়াগোনালের গুণফল
const bothDiagonalsProduct = (matrix) => {
const n = matrix.length;
let primary = 1, secondary = 1;
for (let i = 0; i < n; i++) {
primary *= matrix[i][i];
secondary *= matrix[i][n - 1 - i];
}
return { primary, secondary };
};
// টেস্ট
const arr = [
[1, 3, 4, 2],
[4, 5, 3, 5],
[5, 2, 6, 4],
[8, 2, 9, 3]
];
console.log(diagonalProduct(arr)); // 90
console.log(secondaryDiagonalProduct(arr)); // 2×3×2×8 = 96
console.log(bothDiagonalsProduct(arr)); // {primary: 90, secondary: 96}
ব্যাখ্যা
- প্রধান ডায়াগোনাল: row === col (i === j)
- সেকেন্ডারি ডায়াগোনাল: row + col === n - 1
- সময় জটিলতা: O(n) - শুধু n ইটারেশন
উৎপাদন
90