Números aleatorios

Para crear un número aleatorio en Java (mejor dicho pseudoaletorio, ya que siendo purista, hay que matizar que la aleatoriedad como tal, no existe en la informática) lo mas sencillo es usar la siguiente sentencia de código:

double randomNumber = java.lang.Math.random();

Esto creará un double comprendido en el intervalo [0,1).
Si lo que interesa es crear un número comprendido dentro de otro rango, por ejemplo [a,b] entonces se puede usar una expresión del tipo:

randomNumber = (randomNumber +1) * (b-a) + a-2;

o lo que es lo mismo:

randomNumber = randomNumber * (b-a) + b - 2;

Aunque nunca se llegará realmente a conseguir el número b, si se conseguirán valores muy próximos. Este tipo de expresiones solían hacerse en programación C.
Java ofrece una forma alternativa de obtener un número real en el rango [0,1), esta forma es creando una instancia de la clase java.uti.Random:

java.util.Random r = new java.util.Random();
double randomNumber = r.nextDouble();

La principal ventaja de usar la case Random es que tiene unos cuantos métodos para generar números pseudoaletarios de distintos tipos. Entre estos métodos cabe destacar el constructor parametrizado de la clase y el método nextInt:

long seed = 1001;
java.util.Random r = new java.util.Random(seed);
int integer = r.nextInt(10);

El número 1001 (valor arbitrario de la variable seed) es la semilla del generador de números pseudoaleatorios. Esta semilla determinará la secuencia de números aleatorios a producir (solo para números enteros). El método nextInt generará números enteros comprendidos en el rango [0,9].

Acerca de franciscoguemes

Ingeniero en Informática
Esta entrada fue publicada en Java. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s