Foros del Web » Programación para mayores de 30 ;) » Java »

Matrices

Estas en el tema de Matrices en el foro de Java en Foros del Web. Hola. Tengo una duda que supongo que será una chorrada pero no sé cómo hacerlo ya que soy nuevo en esto de la programación. Tengo ...
  #1 (permalink)  
Antiguo 17/08/2006, 17:59
 
Fecha de Ingreso: agosto-2006
Mensajes: 35
Antigüedad: 18 años, 3 meses
Puntos: 0
Matrices

Hola. Tengo una duda que supongo que será una chorrada pero no sé cómo hacerlo ya que soy nuevo en esto de la programación.
Tengo una matriz de 4x4 y quiero desordenarla. ¿Cómo lo haríais?
Se me había ocurrido crear otra matriz 4x4 que fuera cogiendo aleatoriamente los datos de la 1ª, pero no sé cómo hacer para marcar que no se repitan las posiciones ya cogidas.
El código es:

matriz2 = new char[4][4];
for (int i=0; i&lt4; i++){
for (int j=0; j&lt4; j++){
matriz2[i][j] = matriz[(int)(Math.random()*4)][(int)(Math.random()*4)];
}
}

Gracias por adelantado.
  #2 (permalink)  
Antiguo 18/08/2006, 02:19
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Hola:

Una forma de hacerlo (no sé si es la mejor y más eficiente). Haz una LinkedList con los 16 números.

for (int i=0;i<16;i++) { linkedList.add(new Integer(i));

Luego rellena la matriz en orden, pero eligiendo una posición al azar de la LinkedList entre 0 y linkedList.size(). El número elegido lo metes en la matriz y lo borras de la lista.

fors para la matriz
{
int indice = Math.random()*linkedList.size();
matriz[i][j] = (Integer)linkedList.get(indice);
linkedList.remove(indice);
}

He puesto los métodos un poco de memoria y quizás no sean exactamente así, pero creo que se entiende.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:40.