4.21.2009

Generar Números Aleatorios en java

.

Para generar números aleatorios  con java haremos uso de la clase Math que se encuentra en el paquete java.útil, no será necesario hacer importación alguna ya que todas las clases del paquete java.util pueden ser usadas sin necesidad de importarla.

La clase Math posee solo métodos estáticos por lo que para usar sus métodos no será necesario crear ningún objeto de esta.

Bien, el método que utilizaremos será el .random de la clase Math, ¿Que hace este método?, pues nos genera un numero aleatorio comprendido entre 0 y 1  que será de tipo double, esto tenemos que tenerlo muy en cuenta al utilizarlo ya que el resultado de este método tendremos que guardarlo en una variable de tipo double.

Como ya mencione los valores que genera están entre 0 y 1 es decir algunas posibles salidas de este método podrían ser:

0.0000256869
0.1212331323
0.00000002356
0.000000000006

Como ves estos valores están dentro del rango 0 y 1, pero la verdad es que cuando llegamos a necesitar números aleatorios, no necesitamos este tipo de valores si no generalmente enteros y entre rangos que nosotros queramos o que signifiquen algo dentro de nuestro programa.

A continuación implementaremos un método que hará uso del Math.random
que generara aleatorios enteros comprendidos en un rango que recibirá como argumento, el código del método s el siguiente:

Clic en readmore>>> Para Ver Articulo Completo 

public int Generar_Aleatorio(int min, int max)
{

int aleatorio=0;
do
{
double rand=Math.random()*1000;
aleatorio=(int)rand;
}
while(aleatorio<min || aleatorio>max);
return aleatorio;
}

Explicación del Código.

public int Generar_Aleatorio(int min, int max)
Este es el nombre del método, retornara un valor de tipo entero que será el numero aleatorio, necesita 2 argumentos (min y max) que usaremos para establecer el rango de generación de números aleatorios.

int aleatorio=0;
Esta variable la usaremos para guardar el numero aleatorio ya convertido a entero.

double rand=Math.random()*1000;
Aquí declaramos una variable de tipo double (rand) y le asignamos valor usando el método .random() de la clase Math y lo multiplicamos por 100, hacemos esta multiplicación porque como explique mas arriba, los números que nos genera son muy pequeños y para muchos de los casos no nos servirán por ejemplo si el resultado del Math.random() hubiese sido
0.0125, al multiplicarlo por 1000 pasaría a ser 12.5.

aleatorio=(int)rand;
En esta line hacemos un conversión explicita de double a int en si truncamos la parte decimal del valor contenido en rand y nos quedamos solo con el entero.

while(aleatorio<min || aleatorio>max);
Esta es la sentencia que nos controla el ciclo do , analiza el valor que contiene aleatorio y verifica que este dentro del rango que establecimos en caso de que no cumpla la condición vuelve a hacer todo el procedimiento dado que ese valor no nos sirve.

return aleatorio;
Una vez que sale del ciclo do aleatorio ya contiene un valor “valido” para el rango que establecimos y es lo que retornara este método.

Pues  esta es un sencilla manera de generar aleatorios, el método que hice puede simplificarse mas pero lo hice así para que quedara un poco mas claro, también e le pueden hacer mas modificaciones para que regrese otro tipo de dato y no solo enteros pero ya dependerá de tu caso en especial.