Generar números aleatorios en Java – Clase Math.Random

Logo Java

El manejo de valores generados por un propio Software o en este caso generar números aleatorios en Java, nos permite construir piezas de Software capaces de realizar acciones inesperadas. Tomando como referencia un número creado de forma aleatoria; estos valores pueden ser utilizados de infinitas maneras, todo depende de las necesidades del programador. En este artículo veremos cómo manejar números aleatorios en Java, con ejemplos sencillos ajustables a cualquier proyecto de Software que estés desarrollando.

Cómo generar números aleatorios en Java

Veamos solo algunos casos en los cuales puede ser útil generar un número aleatorio:

  • Necesitamos elegir un elemento de un arreglo.
  • Realizar operaciones matemáticas con números generados automáticamente.
  • Deseamos realizar acciones múltiples dependiendo el valor de una variable aleatoria.
  • Seleccionar palabras de un listado utilizando un número aleatorio.

Cómo podemos observar, generar números aleatorios; Permite que el Software sera más dinámico, tanto así que el usuario podrá percibir que este tiene una capacidad de elegir voluntariamente.

¿Pero cómo generar un número aleatorio en Java?

En Java podemos apoyarnos en la clase Math, que contiene métodos para el tratamiento de números y operaciones matemáticas; que a su vez tiene una propiedad “random“. Mediante la cual podemos gestionar números aleatorios, veamos ejemplos.

Math.random()

Revisando un poco la documentación de Java, podemos leer sus especificaciones acerca de esa clase y su método random.

Devuelve un valor doble con un signo positivo, mayor o igual que 0.0 y menor que 1.0. Los valores devueltos se eligen pseudoaleatoriamente con una distribución (aproximadamente) uniforme de ese rango.

De esta forma sabemos que el método random, retorna un valor double; por consiguiente realizaremos el siguiente ejemplo:

Ejemplo 1: Generar un número aleatorio tipo double con Math.random

Generar números aleatorios en java

Teniendo el código anterior, podemos generar un número decimal aleatorio entre 0.0 y 1.0, veamos un ejemplo la salida al ejecutar este código.

Salida

run:
0.4449485979765232

Sin embargo, es muy común necesitar dos cosas:

  1. Que los números sean enteros.
  2. Generarlos teniendo en cuenta un rango.

Ejemplo 2: Generando un número aleatorio entero en Java

generar números aleatorios en Java

Cómo observamos en el código anterior, ya hacemos uso de una variable tipo entera. Esto gracias al “casting” que nos permite hacer una conversión entre tipos; para este caso de double a entero y lo hacemos con el fin de solo obtener la parte entera del número generado.

Los números que podemos generar serán enteros entre 1 y 5, podemos observar “5 + 1“, esto es gracias a que el primer número en el conteo sería “0“, para evitar este valor sumamos un valor más al número generado.

Salida

run:
3

Ejemplo 3: Generar un número aleatorio estableciendo un intervalo

Básicamente en el ejemplo anterior se estableció un intervalo, que es entre 1 y 5; sin embargo si deseamos indicar inicialmente por parte del usuario los valores podemos hacerlo, así.

generar números aleatorios en Java

En este caso los números para establecer el intervalo son recuperados mediante Scanner, sin embargo pueden ser muchas maneras de establecerlos; inclusive también pueden ser generados aleatoriamente.

Salida

run:
Ingrese valor inicial
100
Ingrese valor final
110

101

Cabe recordar que al momento de utilizar este tipo de clases y métodos para la manipulación de números aleatorios en Java, se hace necesario pensar acerca de las validaciones necesarias sobre los números generados. Debido a que podemos estar creando valores que dejen en un estado indeterminado al Software construido.