Ir al contenido

Número aleatorio de un conjunto con Java.Math

Abraham nos preguntaba en el artículo de Numero al Azar en Java sobre cómo se podría sacar un número al azar de un subconjunto acotado de elementos. La verdad es que la pregunta es muy buena y es por ello por lo que me he decidido a explicar cómo conseguirlo.

La cuestión es que no nos vale la fórmula de generación de números aleatorios estándar que utilizábamos con Java Math, ya que esta nos dará un número aleatorio entre un número inicial y los N números que lo siguen.

int numeroAleatorio = (int)(Math.random()*N)+inicial;

Lo primero que tenemos que hacer es definir el conjunto de elementos sobre los que queremos buscar el número aleatorio. Para ello utilizaremos un array:

int[] conjunto = {1,3,6,9,11,16,21,35,50,67,70};

Ahora la idea es sacar un número aleatorio entre 0 y el número de elementos que tenemos en el conjunto. El número aleatorio que obtengamos lo utilizaremos para acceder al conjunto de elementos. De esta forma obtendremos el número aleatorio del conjunto que habíamos definido.

int numeroAleatorio = conjunto[(int)(Math.random()*conjunto.length)];
System.out.println(numeroAleatorio);
Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Número aleatorio de un conjunto con Java.Math

Código que nos ayude a conseguir un número aleatorio de un conjunto con Java.Math

Descargar código
Pon a prueba tu conocimiento
Arrays en Java

¿Cuál de las siguientes opciones inicializa correctamente un array de String con 3 elementos?

  • A String[] nombres = {"Ana", "Luis", "Carlos"};
  • B String nombres[] = new String[3] {"Ana", "Luis", "Carlos"};
  • C String nombres = ["Ana", "Luis", "Carlos"];
  • D String[] nombres = new String(3);