Java - numeros aleatorios

 
Vista:

numeros aleatorios

Publicado por tito (1 intervención) el 30/11/2006 14:26:04
Hola a todos, queria proponeros una duda que tengo a ver si alguien sabe de que forma hacerlo y como para que sea lo mas eficiente posible.

El problema es que quiero generar una secuencia de numeros aleatoriamente del 1 al 50
y tienen que salir todos los numeros obligatoriamente, es decir, deben salir 50 numeros dentro del rango [1,50] pero sin repetirse. No se de que forma implementarlo porque no conozco muy bien la clase Random (solo se generar una secuencia de numeros normal) y me han dicho que el metodo Math.random() no es muy eficaz.

Si alguien sabe algo me ayudaria mucho si pudiera decirmelo cuanto antes.

Muchas gracias a todos.
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
sin imagen de perfil

RE:numeros aleatorios

Publicado por chuidiang (950 intervenciones) el 30/11/2006 20:05:59
Hola:

No se como será de eficiencia, pero una solución es hacer una lista con los 50 números

LinkedList lista = new LinkedList();
for (int i=0;i<50;i++)
lista.addElement (new Integer(i));

Ahora es cuestion con Math.random de elegir un indice de esa lista, entre 0 la longitud de la lista. Una vez elegido el elemento lo sacas y lo borras de la lista. La lista quedará con 49 elementos. Repites hasta que no queden elementos en la lista. Algo asi

while (lista.getSize() > 0)
{
int indice = Math.random (entre 0 y lista.getSize());
Integer valorElegido = lista.getElementAt(indice);
lista.removeElement (indice);
}

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar