Computer >> Máy Tính >  >> Lập trình >> C ++

Định thức tối đa của ma trận với mọi giá trị 0 hoặc n trong C ++

Tuyên bố vấn đề

Chúng ta đã cho một số dương n và chúng ta phải tìm một ma trận 3 * 3 có thể được tạo thành với tổ hợp của 0 hoặc n và có tối đa các định thức.

Ví dụ

Nếu n =15 thì ta có thể tạo ma trận như sau -

{{15, 15, 0}{0, 15, 15}{15, 0, 0}}

Đối với bất kỳ ma trận 3 * 3 nào có phần tử 0 hoặc n, định thức tối đa có thể có là 2 * (n) 3 . Do đó, câu trả lời là -

2 * (15) 3 =6750

Thuật toán

Đối với bất kỳ ma trận 3 * 3 nào có phần tử 0 hoặc n, định thức tối đa có thể có là 2 * (n) 3

Ví dụ

Bây giờ chúng ta hãy xem một ví dụ -

#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;
}

Đầu ra

Matrix is:
15150
0 15 15
15 015
Maximum determinant = 6750