import java.util.Calendar;
public class CuadradoMagico
{
public static void main(String args[])
{
int cuadrado[][] = new int[3][3];
int suma, fil, col, intento = 1;
boolean posicionCorrecta;
boolean correcto;
long t1, t2, dif;
Calendar ahora1 = Calendar.getInstance();
t1 = ahora1.getTimeInMillis();
do
{
correcto = true;
//Inicializar la matriz
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
cuadrado[i][j] = 0;
//Colocar los números del 1 al 9 aleatoriamente
for(int num=1; num<=9; num++)
{
do
{
posicionCorrecta = false;
fil = (int)(Math.random()*3);
col = (int)(Math.random()*3);
if(cuadrado[fil][col]==0)
{
posicionCorrecta = true;
cuadrado[fil][col] = num;
}
}while(!posicionCorrecta);
}
intento++;
//Comprobar si las sumas son iguales
suma = cuadrado[0][0] + cuadrado[0][1] + cuadrado[0][2];
if(suma!=cuadrado[1][0] + cuadrado[1][1] + cuadrado[1][2])
correcto = false;
else
if(suma!=cuadrado[2][0] + cuadrado[2][1] + cuadrado[2][2])
correcto = false;
else
if(suma!=cuadrado[0][0] + cuadrado[1][0] + cuadrado[2][0])
correcto = false;
else
if(suma!=cuadrado[0][1] + cuadrado[1][1] + cuadrado[2][1])
correcto = false;
else
if(suma!=cuadrado[0][2] + cuadrado[1][2] + cuadrado[2][2])
correcto = false;
else
if(suma!=cuadrado[0][0] + cuadrado[1][1] + cuadrado[2][2])
correcto = false;
else
if(suma!=cuadrado[0][2] + cuadrado[1][1] + cuadrado[2][0])
correcto = false;
else
correcto = true;
}while(!correcto);
Calendar ahora2 = Calendar.getInstance();
t2 = ahora2.getTimeInMillis();
//Mostrar el cuadrado
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
System.out.print(cuadrado[i][j]+" ");
System.out.println();
}
//Se muestra en pantalla el tiempo tardado
dif = t2 - t1;
System.out.println("Generado en: " + dif + " milisegundos con "+ intento+ " intentos");
}
}
lunes, 19 de enero de 2009
Matrices en Java (Cuadrado Mágico)
Programa que genera el cuadrado mágico. El programa debe colocar los números del 1 al 9 en una matriz de 3x3 de forma que la suma de cada fila, de cada columna y de las diagonales tenga el mismo resultado.
Suscribirse a:
Enviar comentarios (Atom)
Podrías agregar mas comentarios al código, entiendo un poco pero en algunas líneas me confundo
ResponderEliminarbuen post gracias por la ayuda
ResponderEliminarGracias por el aporte, pero debe haber un mejor algoritmo para ello, si fuera una matriz de nxn, de 10 por 10 sería un código muy extenso según la forma en como lo haces. Saludos.
ResponderEliminarYo tengo ese problema, tengo que hacerlo de nxn
Eliminar¿Tienes algo que me pueda ayudar?
+ 10 lince
ResponderEliminarte ganaste el tucan mistico +100
ResponderEliminarTenkiu:u
ResponderEliminarjjejejej
Eliminar+1000 pinche perro hay te va mi pichula
ResponderEliminarA nivel de matemáticas existen estudios de la teoría de matrices cuadradas por su particularidad de operaciones aritmeticas. Igualmente las matrices cuadradas se aplican hoy en desarrollo de juegos para el cerebro.
ResponderEliminarComparto un link con un programa en java que determina si una matriz es o no cuadrada mágica: https://tutorias.co/arrays-javamatriz-cuadrada-magica/