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 neveropen= new GFG(); System.out.println( "Maximum Determinant = " + maxDet(n)); System.out.println( "Resultant Matrix :" ); neveropen.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 neveropen= new GFG(); Console.WriteLine( "Maximum Determinant = " + maxDet(n)); Console.WriteLine( "Resultant Matrix :" ); neveropen.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> |
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.
If you like neveropen 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 neveropen main page and help other Geeks.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!