โจทย์
ได้รับจำนวนบวก n ต้องการหาเมทริกซ์ 3x3 ที่ประกอบด้วยการรวมกันของ 0 หรือ n และมี Determinant สูงสุด
ตัวอย่าง
ถ้า n = 15 สามารถสร้างเมทริกซ์ได้ดังนี้
{{15, 15, 0}, {0, 15, 15}, {15, 0, 0}}
สำหรับเมทริกซ์ 3x3 ใดๆ ที่มีองค์ประกอบเป็น 0 หรือ n ค่า Determinant สูงสุดที่เป็นไปได้คือ 2 × n³ ดังนั้นคำตอบคือ
2 × (15)³ = 6750
อัลกอริทึม
สำหรับเมทริกซ์ 3x3 ใดๆ ที่มีองค์ประกอบเป็น 0 หรือ n ค่า Determinant สูงสุดที่เป็นไปได้คือ 2 × n³
ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
int getMaxDeterminant(int n) {
return (2 * n * n * n);
}
void printMatrix(int n) {
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
if (i == 0 && j == 2) {
printf("%-5d", 0);
} else if (i == 1 && j == 0) {
printf("%-5d", 0);
} else if (i == 2 && j == 1) {
printf("%-5d", 0);
} else {
printf("%-5d", n);
}
}
printf("\n");
}
}
int main() {
int n = 15;
cout << "Matrix is:\n";
printMatrix(n);
cout << "\nMaximum determinant = " << getMaxDeterminant(n) << endl;
return 0;
}
ผลลัพธ์
Matrix is: 15 15 0 0 15 15 15 0 15 Maximum determinant = 6750