Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค่า Determinant สูงสุดของเมทริกซ์ 3x3 ที่ค่าเป็น 0 หรือ n ใน C++


โจทย์

ได้รับจำนวนบวก 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