feed twitter facebook LinkedIn facebook

Java » Numero aleatorio de un conjunto con Java.Math

Septiembre 7, 2007 por Víctor Cuervo . 16129 visitas 17 Comentarios Imprimir Imprimir

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 utilizabamos 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.

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:

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.

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

Visualizar ejemplo | Descargar el código

tags: , , , , , ,

Artículos relacionados:

17 comentarios »

Redifusión RSS de los comentarios de la entrada. TrackBack URI

1 2
  1. florangel
    Diciembre 12, 2009 #

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

  2. fernando
    Agosto 30, 2010 #

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

  3. lineadecodigo
    Agosto 31, 2010 #

    @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.

  4. Linea de Codigo » Sacar un naipe de la baraja
    Septiembre 23, 2010 #

    [...] de las preguntas que hemos recibido hace poco era sobre como podemos hacer un programa en Java que sacase naipes de una baraja. Y la verdad que me parece un programa interesante y fácil de [...]

  5. maria
    Septiembre 23, 2010 #

    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

  6. lineadecodigo
    Septiembre 24, 2010 #

    @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.

  7. luis
    Octubre 28, 2010 #

    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

1 2

Deje un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*