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.
Recommended Articles