Skip to content
Related Articles
Open in App
Not now

Related Articles

Maximum determinant of a matrix with every values either 0 or n

Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 19 Aug, 2022
Improve Article
Save Article

We have given a positive number n, and we have to find a 3*3 matrix which can be formed with combination of 0 or n and has maximum determinant.

Examples : 

Input : n = 3 
Output : Maximum determinant = 54
Resultant Matrix :
3 3 0
0 3 3
3 0 3

Input : n = 13 
Output : Maximum determinant = 4394
Resultant Matrix :
13 13  0
0  13 13
13  0 13

Explanation: 

For any 3*3 matrix having elements either 0 or n, 
the maximum possible determinant is 2*(n^3)..
Also a matrix having maximum determinant is of form: 
n n 0 
0 n n 
n 0 0

Implementation:

C++




// C++ program to find  maximum possible determinant
// of 0/n matrix.
#include <bits/stdc++.h>
using namespace std;
 
// Function for maximum determinant
int maxDet(int n)
{
    return (2*n*n*n);
}
 
// Function to print resultant matrix
void resMatrix ( int n)
{
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            // three position where 0 appears
            if (i == 0 && j == 2)
                cout << "0 ";
            else if (i == 1 && j == 0)
                cout << "0 ";
            else if (i == 2 && j == 1)
                cout << "0 ";
 
            // position where n appears
            else
                cout << n << " ";
        }
        cout << "\n";
    }
}
 
// Driver code
int main()
{
    int n = 15;
    cout << "Maximum Determinant = " << maxDet(n);
 
    cout << "\nResultant Matrix :\n";
    resMatrix(n);
 
    return 0;
}


Java




// Java program to find maximum possible
// determinant of 0/n matrix.
import java.io.*;
 
public class GFG
{
     
// Function for maximum determinant
static int maxDet(int n)
{
    return (2 * n * n * n);
}
 
 
// Function to print resultant matrix
void resMatrix(int n)
{
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            // three position where 0 appears
            if (i == 0 && j == 2)
                System.out.print("0 ");
            else if (i == 1 && j == 0)
                System.out.print("0 ");
            else if (i == 2 && j == 1)
                System.out.print("0 ");
 
            // position where n appears
            else
                System.out.print(n +" ");
        }
        System.out.println("");
    }
}
 
    // Driver code
    static public void main (String[] args)
    {
            int n = 15;
            GFG geeks=new GFG();
            System.out.println("Maximum Determinant = "
                                + maxDet(n));
 
            System.out.println("Resultant Matrix :");
            geeks.resMatrix(n);
 
    }
}
 
// This code is contributed by vt_m.


Python3




# Python 3 program to find maximum
# possible determinant of 0/n matrix.
# Function for maximum determinant
def maxDet(n):
    return 2 * n * n * n
 
# Function to print resultant matrix
def resMatrix(n):
    for i in range(3):
        for j in range(3):
 
            # three position where 0 appears
            if i == 0 and j == 2:
                print("0", end = " ")
            else if i == 1 and j == 0:
                print("0", end = " ")
            else if i == 2 and j == 1:
                print("0", end = " ")
 
            # position where n appears
            else:
                print(n, end = " ")
        print("\n")
         
# Driver code
n = 15
print("Maximum Detrminat=", maxDet(n))
print("Resultant Matrix:")
resMatrix(n)
 
# This code is contributed by Shrikant13


C#




// C# program to find maximum possible
// determinant of 0/n matrix.
using System;
 
public class GFG
{
     
// Function for maximum determinant
static int maxDet(int n)
{
    return (2 * n * n * n);
}
 
 
// Function to print resultant matrix
void resMatrix(int n)
{
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            // three position where 0 appears
            if (i == 0 && j == 2)
                Console.Write("0 ");
            else if (i == 1 && j == 0)
                Console.Write("0 ");
            else if (i == 2 && j == 1)
                Console.Write("0 ");
 
            // position where n appears
            else
                Console.Write(n +" ");
        }
        Console.WriteLine("");
    }
}
 
    // Driver code
    static public void Main (String []args)
    {
            int n = 15;
            GFG geeks=new GFG();
            Console.WriteLine("Maximum Determinant = "
                                + maxDet(n));
 
            Console.WriteLine("Resultant Matrix :");
            geeks.resMatrix(n);
 
    }
}
 
// This code is contributed by vt_m.


PHP




<?php
// PHP program to find maximum
// possible determinant of 0/n matrix.
 
// Function for maximum determinant
function maxDet($n)
{
    return (2 * $n * $n * $n);
}
 
// Function to print
// resultant matrix
function resMatrix ( $n)
{
    for ($i = 0; $i < 3; $i++)
    {
        for ($j = 0; $j < 3; $j++)
        {
            // three position
            // where 0 appears
            if ($i == 0 && $j == 2)
                echo "0 ";
            else if ($i == 1 && $j == 0)
                echo "0 ";
            else if ($i == 2 && $j == 1)
                echo "0 ";
 
            // position where n appears
            else
                echo $n , " ";
        }
    echo "\n";
    }
}
 
// Driver code
$n = 15;
echo "Maximum Determinant = " ,
                    maxDet($n);
 
echo "\nResultant Matrix :\n";
resMatrix($n);
 
// This code is contributed
// by nitin mittal.
?>


Javascript




<script>
 
// Java script program to find maximum possible
// determinant of 0/n matrix.
     
// Function for maximum determinant
function maxDet(n)
{
    return (2 * n * n * n);
}
 
// Function to print resultant matrix
function resMatrix(n)
{
    for(let i = 0; i < 3; i++)
    {
        for(let j = 0; j < 3; j++)
        {
             
            // Three position where 0 appears
            if (i == 0 && j == 2)
                document.write("0 ");
            else if (i == 1 && j == 0)
                document.write("0 ");
            else if (i == 2 && j == 1)
                document.write("0 ");
 
            // Position where n appears
            else
                document.write(n +" ");
        }
        document.write("<br>");
    }
}
 
// Driver code
let n = 15;
 
document.write("Maximum Determinant = " +
               maxDet(n) + "<br>");
 
document.write("Resultant Matrix :<br>");
               resMatrix(n);
                
// This code is contributed by sravan kumar
 
</script>


Output

Maximum Determinant = 6750
Resultant Matrix :
15 15 0 
0 15 15 
15 0 15 

Time complexity: O(1).
Auxiliary Space: O(1), since no extra space has been taken.

Exercise: Extend the above solution for a generalized k x k matrix.

This article is contributed by Aarti_Rathi and Shivam Pradhan (anuj_charm). If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!