Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/06/2009, 16:08
lezambranof
 
Fecha de Ingreso: junio-2009
Ubicación: Bucaramanga, Santander.
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Rellenar array con numeros aleatorios y sin repetir

/**
* Retorna un vector de enteros entre a y b (inclusive), a < b.
*/
public static int[] getSecuenciaAleatoria(int a, int b)
{
//El generador de números aleatorios.
java.util.Random rnd = new java.util.Random();

// El tamaño del vector.
int n = b - a + 1;

// Un ArrayList que será llenado ordenadamente con valores de a hasta b
java.util.ArrayList<Integer> v = new java.util.ArrayList<Integer>();
for(int i=0; i < n; ++i)
{
v.add(a+i);
}

//La secuencia a retornar.
int[] s = new int[n];

//Un temporal
int t;

//Se llena la secuencia tomando un valor aleatorio del vector v ordenado.
// Note que t es el índice del valor tomado desde v.
//El valor tomado se elimina luego se asignarselo a la secuencia.
for(int i=0; i < n; i++)
{
t = rnd.nextInt(v.size());
s[i] = v.get(t);
v.remove(t);
}

//Chao, nos vemos.
return s;
}

~~~

Desde main: int[] s = getSecuenciaAleatoria(1,10);