logo

Determinante máximo de una matriz con todos los valores 0 o n

Hemos dado un número positivo n y tenemos que encontrar una matriz de 3 * 3 que se pueda formar con una combinación de 0 o n y que tenga un determinante máximo.

Ejemplos:  

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

Explicación:  



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

Implementación:

C++
// C++ program to find maximum possible determinant // of 0/n matrix. #include    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 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('  
'
); } } // Driver code let n = 15; document.write('Maximum Determinant = ' + maxDet(n) + '
'
); document.write('Resultant Matrix :
'
); resMatrix(n); // This code is contributed by sravan kumar </script>

Producción
Maximum Determinant = 6750 Resultant Matrix : 15 15 0 0 15 15 15 0 15 

Complejidad del tiempo: O(1).
Espacio Auxiliar: O(1) ya que no se ha ocupado espacio adicional.

Ejercicio: Amplíe la solución anterior para una matriz k x k generalizada.

Crear cuestionario