Ayuda con la implementación de función de números aleatorios en java

Estoy haciendo una aplición en java y necesito generar números aleatorios.
El caso es que no sé como inicializar la semilla al tiempo o a la hora del sistema, de manera que siempre se den resultados diferentes.
Y otra cosa que no consigo es cómo hacer para que los números no me salgan repetidos.

1 respuesta

Respuesta
1
Como sabrás, nunca vas a conseguir números aleatorios puros... los ordenadores te van a generar números pseudoaleatorios, y por eso puede que consigas números repetidos o incluso los mismos números. Como bien dices, puedes utilizar una semilla para evitar este tipo de problemas, y la mejor es el tiempo del sistema.
Con System. CurrentTimeMillis() obtienes el tiempo del sistema, y con la clase java. Útil. Random (no utilices Math!) Puedes iniciar un objeto aleatorio incluyéndole la semilla que quieras.
http://java.sun.com/j2se/1.3/docs/api/java/util/Random.html
Si le echas un vistazo al API verás que puedes elegir entre varias distribuciones de probabilidad, y con varios tipos de datos.
Para evitar que los números no se repitan lo único que puedes hacer es almacenarlos en alguna lista y, si chequeas que se ha repetido alguno volver a solicitar otro número aleatorio. No es normal que ocurra pero puede pasar, y para estar seguro éste es el único método.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas