Java - Ayuda examen

   
Vista:

Ayuda examen

Publicado por sergio (1 intervención) el 21/02/2015 04:15:48
miren mi ing nos dio un problema para presentar mañana como parte de la parte practica de inteligencia artificial bueno les explico se trata de

1.-Dada la siguientes expresion algebraica: D= X^n * Y^m,formar el cuadrado magico de 3x3, con el ultimo digito de cada operacion.
Donde "X" y "Y", son numeros enteros aleatorios comprendidos entre 1 y 100.
Donde "n" y "m",son numeros enteros aleatorios mayores a 2000

tiene que ser ultimo numero no menor a 1 ni mayor a 9 entre estos valores que formen el cuadro magico aqui un ejemplo:


ı1ı ı8ı ı6ı =15
ı5ı ı3ı ı7ı =15
ı9ı ı4ı ı2ı = 15
les doy un ejemplo de como funciona

d= 5^2000*10^2015= 20145530259230592305 este resultado no es el correcto solo que es como ejemplo ya que es tan largo que es dificil sacar el ultimo digito
d= 5 que es el ultimo digito

ı5ı ı ı ı ı
ı ı ı ı ı ı
ı ı ı ı ı ı

y asi ir sacando varias ecuaciones que no se repita el cinco y asi llenar de tal manera que el resultados de todo los lados sea 15 no importa la diagonal solo los lados izquierda y derecha y arriba y abajo

ademas tiene que mostrar todas las ecuaciones que formen parte del cuadro magico

si alguien es tan amable de poder resolvermelo se lo agradecere eternamente.



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");
}
}
este es un codigo que encontre buscando un poco esto ya hace el cuadrado magico 3 x 3 con todo correcto solo faltaria intentar implementar esta formula y las condiciones que es lo mas dificil


mil gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder