PROGRAMACIÓN EN JAVA

En esta pagina estaremos tratando de las principales soluciones a distintos problemas encontrados en el camino de la programación en java, si tienes una consulta sobre cualquier tema que se trate de java déjanos tu pregunta.

1. Números aleatorios en Java:

Para generar números aleatorios en Java podemos usar Math.random().
     La llamada a Math.random() devuelve un número aleatorio entre 0.0 y 1.0, excluido este último valor, es decir, puede devolver 0.346442, 0.2344234, 0.98345,....
     En muchas de nuestras aplicaciones no nos servirá este rango de valores. Por ejemplo, si queremos simular una tirada de dado, queremos números entre 1 y 6 sin decimales. Debemos echar unas cuentas para obtener lo deseado.
     En primer lugar, miramos cuántos valores queremos. En nuestro caso del dado son 6 valores, del 1 al 6 ambos incluido. Debemos entonces multiplicar Math.random()por 6. Si quisieramos valores entre dos números cualquiera ambos incluídos, por ejemplo, 5 y 10, la cuenta sería (maximo-minimimo)+1, es decir, (10-5)+1 = 6, también multiplicaríamos por 6.

aleatorio = (int) (Math.random()*6); // Esto da valores de 0 a 6 excluido el 6 ; System.out.println("aleatorio: "+aleatorio);

     Como nuestro primer valor es 1, le sumamos 1 al resultado. En el caso de que quisieramos entre 5 y 10, habría que sumar 5, es decir, el valor mínimo.


aleatorio = (int) (Math.random()*6+1); // Esto da valores entre 1 y 7 excluido el 7 ; System.out.println("aleatorio: "+aleatorio);


     En general, para conseguir un número entero entre M y N con M menor que N y ambos incluídos, debemos usar esta fórmula:

aleatorio = (int) (Math.random()*(100-20+1)+20); // Valor entre 20 y 100 incluidos
System.out.println("aleatorio: "+aleatorio);


    OJO: Si quieres decimal solo quitas "int"

Secuencia de aleatorios con números del 20 al 100:

public static void main(String[] args) {
         System.out.println("Primera secuencia");
    for (int i = 0; i < 3; i++) {
        System.out.print("\t"+(int)(Math.random()*(100-20+1)+20));
    }
    System.out.println("");

    System.out.println("Segunda secuencia");
    for (int i = 0; i < 3; i++) {
        System.out.print("\t"+(int)(Math.random()*(100-20+1)+20));
    }
    System.out.println("");
    
     System.out.println("Tercera secuencia");
    for (int i = 0; i < 3; i++) {
        System.out.print("\t"+(int)(Math.random()*(100-20+1)+20));
    }
    System.out.println("");

    }
2. 


4 comentarios:

Copyright © 2013 ISF INGENIERO and Blogger Themes.