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;Definir el conjunto de elementos
Sección titulada «Definir el conjunto de elementos»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};Obtener el número aleatorio del conjunto
Sección titulada «Obtener el número aleatorio del conjunto»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);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
¿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);