Verificar se duas matrizes são permutáveis

Boas tardes pessoal, eu gostava de saber se alguém me pode ajudar a verificar se duas matrizes são permutáveis, ou seja, se a matriz AB é igual à matriz BA, eu não sei mesmo como fazer isso é para um trabalho de faculdade, eu já fiz código para criar duas matrizes e fazer operações com elas, só não sei essa parte…

package algebra1;
import java.util.Scanner;
public class Main {
public static Scanner entr=new Scanner(System.in);
public static int menu(Scanner entr) {
System.out.println("1 - Determinar se a matriz é simétrica ");
System.out.println("2 - Determinar a matriz transposta ");
System.out.println(“0 - sair”);
return entr.nextInt();

}
public static void simetrica(int[][]matriz, int linhas) 
{
    int i,j,colunas;
    colunas=linhas;
    for (i=0; i<linhas; i++)
    {
        for (j=i+1; j<colunas; j++)
        {
            if (matriz[i][j]!=matriz[j][i])
                break;  
        }
        if(j<colunas)
            break;
        
    }
        System.out.println();
   
    if (i<linhas)
           System.out.println("Não é simétrica");
    else
           System.out.println("É simétrica");
    
}  

public static void transposta(int[][]matriz,int linhas) {
    int i,j,colunas;
    colunas=linhas;
    
    for(i=0; i<linhas; i++)
    {
        for(j=0; j<colunas;j++)
        {
            System.out.print(matriz[j][i]+" ");
        }
        System.out.println();
    }
       
}

public static void main(String[] args) {
    int i,j,colunas,linhas,op;
    System.out.println("Introduza número de linhas(=número de colunas)");
    linhas=entr.nextInt();
    colunas=linhas;
    char vec[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    System.out.println("Introduza os números que constituem as linhas da matriz");
    int matriz[][]=new int[linhas][colunas];
    for (i=0; i<linhas; i++) 
        for (j=0; j<colunas; j++)
          matriz[i][j]=entr.nextInt();
    for(i=0; i<linhas; i++)
    {
        for(j=0; j<colunas;j++)
        {
            System.out.print(matriz[i][j]+" ");
        }
        System.out.println();
    }
    System.out.println();
    while((op=menu(entr))!=0)
    {
        switch (op) 
        {
            case 0: break;
            case 1: simetrica(matriz,linhas); break; 
            case 2: transposta(matriz,linhas); break;
            default: System.out.println("Opção inválida");
            }
    }
    }

}

Por favor ajudem…

Quando for colocar código, use a tag code.

Para comparar você pode criar o método:

public static boolean ePermutavel(int[][] matriz, int[][] matriz2) { for (int i = 0; i &lt matriz.length; i++) for (int j = 0; j &lt matriz[i].length; j++) if (matriz[i][j] != matriz2[i][j]) return false; return true; }

Peço desculpa, mas eu não consigo pôr o código a correr…

Construi o código assim:

[code]package algebra1;

import java.util.Scanner;
public class Main {
public static Scanner entr=new Scanner(System.in);
public static int menu(Scanner entr) {
System.out.println("1 - Determinar se a matriz é simétrica ");
System.out.println("2 - Determinar a matriz transposta ");
System.out.println(“0 - sair”);
return entr.nextInt();

}
public static void simetrica(int[][]matriz, int linhas)
{
int i,j,colunas;
colunas=linhas;
for (i=0; i<linhas; i++)
{
for (j=i+1; j<colunas; j++)
{
if (matriz[i][j]!=matriz[j][i])
break;
}
if(j<colunas)
break;

}
System.out.println();

if (i<linhas)
System.out.println(“Não é simétrica”);
else
System.out.println(“É simétrica”);

}

public static void transposta(int[][]matriz,int linhas) {
int i,j,colunas;
colunas=linhas;

for(i=0; i<linhas; i++)
{
for(j=0; j<colunas;j++)
{
System.out.print(matriz[j][i]+" ");
}
System.out.println();
}

}
public static boolean ePermutavel(int[][] matriz, int[][] matriz2) {
for (int i = 0; i < matriz.length; i++)
for (int j = 0; j < matriz[i].length; j++)
if (matriz[i][j] != matriz2[i][j])
return false;
return true;
}

public static void main(String[] args) {
int i,j,colunas,linhas,op;
System.out.println(“Introduza número de linhas(=número de colunas)”);
linhas=entr.nextInt();
colunas=linhas;
char vec[]={‘0’,‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’,‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};
System.out.println(“Introduza os números que constituem as linhas da matriz”);
int matriz[][]=new int[linhas][colunas];
for (i=0; i<linhas; i++)
for (j=0; j<colunas; j++)
matriz[i][j]=entr.nextInt();
for(i=0; i<linhas; i++)
{
for(j=0; j<colunas;j++)
{
System.out.print(matriz[i][j]+" ");
}
System.out.println();
}
System.out.println();
while((op=menu(entr))!=0)
{
switch (op)
{
case 0: break;
case 1: simetrica(matriz,linhas); break;
case 2: transposta(matriz,linhas); break;
default: System.out.println(“Opção inválida”);
}
}
}

} [/code]

Sabe-me dizer qual o erro???