Números aleatorios en Java

Oct 12, 2011 1 Comment by

Tenemos dos formas nativas para generar números aleatorios en Java, Math.random() y java.util.Random.

Math.random()

Es un método público y estático (lo podemos usar sin tener una instancia de la cláse Math), genera un número double aleatorio entre 0 y 1.

double nrand = Math.random()
System.out.println( nrand ); // ex: 0.1523523

Si deseamos tener un número entero dentro de un intervalo (entre 1 y 10, incluyendolos), podemos usar la formula Math.random()*(MIN-MAX+1)+MAX+1

// 20 Números enteros aleatorios entre 1 y 10 (incluyendolos)
int nrand;
for(int i=0;i<20;i++)
{
	nrand =  (int)Math.floor( Math.random() *(1-11)+11);
	System.out.println( nrand );
}

java.util.Random

Random es una clase, la debemos instanciar, además tiene la cualidad de permitir una semilla de generación de números aleatorios (si entregamos la misma semilla, nos va a generar la misma secuencia aleatoria), de todas formas, lo más común es instanciarla sin ningún argumento (ella se encarga de generar una semilla aleatoria).

import java.util.Random;
...
Random r = new Random();
// Numero entero aleatorio entre 0 y 10 (no incluyendo al 10)
int nrand = r.nextInt(10);
// 20 números aleatorios entre 1 y 10 (incluyendolos)
int nrand;
for(int i=0;i<20;i++)
{
	nrand =  r.nextInt(11)+1;
	System.out.println( nrand );
}

Solo falta decir que Random, posee otros métodos que permite la generación de doubles, float, bytes, boolean, etc aleatorios.

Java

About the author

Ingeniero en Informática, Oracle Certified Master Java EE 6 Enterprise Architect, Oracle Certified Professional Java Programmer. Experto en distintas ramas de la computación y otras "yerbas" xD. Si te gusto este post, sígueme en @deerme_org, escríbeme a info AT deerme.org o contactame por linkedin.

One Response to “Números aleatorios en Java”

  1. Jorge says:

    y que pasa si los quiero solo enteros?

Leave a Reply


+ one = 6