Número aleatorio de un conjunto con Java.Math

07/Sep/2007 Java , 17 Comentarios

Abraham nos preguntaba en el artículo de Numero al Azar en Java sobre como 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 como conseguirlo.

La cuestión es que no nos vale la formula 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.

  1. Math.random()*cantidadNumeros+numeroInicio

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:

  1. int numeros[] = {2,4,6,8,10};

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.

  1. x = Math.random()*numeros.length+0);
  2. System.out.println(numeros[x]);

Vídeos sobre Java


17 comentarios en “Número aleatorio de un conjunto con Java.Math”

Víctor Cuervo

luis

hola que tal como estan soy estudiante y me an dejado un trabajo para hacer el trabajo es qe ingrese un nombre y qe ala hora de ejecutar salga el nombre en forma vertical

Víctor Cuervo

lineadecodigo

@fernando,

Hemos codificado el programa que solicitabas de las cartas en
http://lineadecodigo.com/java/sacar-un-naipe-de-la-baraja/

Espero que te sea de ayuda.

Víctor Cuervo

maria

Escribir una clase en java en la cual se opere lo siguiente
a) construir un metodo que realice la operacion de cuadrados y cubos de los numeros 1 al 15
b) construir un metodo que lea el ingreso por teclado de un refran
c) contruir un metodo que imprima en un archivo de texto las operaciones de los puntos a y b
d) construir un metodo que lea desde un archivo de texto

Víctor Cuervo

lineadecodigo

@fernando,

Primero échale un ojo al artículo http://lineadecodigo.com/2007/04/08/numero-al-azar-en-java/

Luego, lo que tienes que hacer es lanzar dos Random seguidos. El primero para la carta (limitando del 1 al 10 -o depende del número de cartas que tengas).

Y el segundo para el naipe. Limitando de 1 a 4 (corazones, picas, trebol y diamantes)

El código sería algo así…

int numero = (int) (Math.random()*10+1);
int naipe = (int) (Math.random()*4);
String naipes[] = {“corazones”,”picas”,”treboles”,”diamantes”};
System.out.println(numero + “-” + naipes[naipe]);

Solo queda mejorarlo… Espero que te sirva.

Víctor Cuervo

fernando

quisiera el codigo donde pueda sacar un naipe aleatoriament, por ejmplo sacar naipe ok y te salga un texto: 3 de trebol con java.

Víctor Cuervo

florangel

hola… quisiera saber como crear numeros aleatorios y q salgan en un jpanel que tiene dentro 18 casillas hechas con vectores… trabajo con netbeans

Víctor Cuervo

raul

me lo púedes pasar con paso a paso con lo de class i todo eso en un blog de notas en serio lo necesito para el netbeans

Víctor Cuervo

lineadecodigo

@Naye,

Lo tienes en Numero aleatorio en Java.

Espero que te sirva de ayuda.

Víctor Cuervo

NAYE

HOLA NESECITO UN PROGRAMA EN JAVA PARA NUMEROS ALEATORIOS QUE ME DEN UN MUMERO ENTERO

Víctor Cuervo

lucas2g

muchisimas gracias por el codigo!!!! me sirvio un monton…
te agradesco infinitamente.. saludos!!!!

Víctor Cuervo

milton

hola me llamo milton y quieciera saber como se saca la hipotenusa de un triangulo rectangulo

Víctor Cuervo

alejandra

hola me llamo alejandra y necesito un codigo en java de como generar un arreglo de numeros aleatorios pero sin repertise

Víctor Cuervo

estuardo

como puedo crear un programa que cree conjuntos finitos

Víctor Cuervo

Esendor

Hola me podrían ayudar con el conjunto potencia……

Víctor Cuervo

manuel

como formar numeros aleatorios en java y la utilizacion de los parametros en java

Víctor Cuervo

Esteban Gudiño

hola a todos si me podrian ayudar con codigo para generar numeros aleatorios pero manuales como ejemplo el metod de congruencia linial… etc no con la funcion random q usan los lenjuajes de programacion

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*