Cómo generar números enteros con Math Random en Java

A continuación, responderemos al cuestionamiento: cómo generar números enteros con Math Random en Java, lo cual ayudará a los proyectos web y apps.

Los números aleatorios generados por computadora se dividen en dos categorías: números aleatorios verdaderos y números pseudoaleatorios. Los primeros, se generan en función de factores externos. Por ejemplo, generar aleatoriedad utilizando ruidos circundantes.

Pero generar un número aleatorio tan verdadero es una tarea laboriosa. Por lo tanto, podemos utilizar números pseudoaleatorios que se generan mediante un algoritmo y un valor “semilla”.

Los números pseudoaleatorios se pueden usar en criptografía, en la creación de juegos como dados o cartas, y en la generación de números OTP (contraseña de un solo uso).

A continuación, describiremos cómo generar números pseudoaleatorios usando Math.random() en Java.

Utilizar Math.random () para generar enteros

Math.random() devuelve un número pseudoaleatorio de tipo doble, mayor o igual a cero y menor que uno. Se puede probar el siguiente código:

    public static void main(String[] args) {

        double randomNumber = Math.random();

        System.out.println(randomNumber);

    }

    // output #1 = 0.5600740702032417

    // output #2 = 0.04906751303932033

randomNumber nos dará un número aleatorio diferente para cada ejecución.

Si queremos generar números aleatorios dentro de un rango específico, por ejemplo, de cero a cuatro se puede utilizar:

    // generate random numbers between 0 to 4

    public static void main(String[] args) {

        // Math.random() generates random number from 0.0 to 0.999

        // Hence, Math.random()*5 will be from 0.0 to 4.999

        double doubleRandomNumber = Math.random() * 5;

        System.out.println(“doubleRandomNumber = ” + doubleRandomNumber);

        // cast the double to whole number

        int randomNumber = (int)doubleRandomNumber;

        System.out.println(“randomNumber = ” + randomNumber);

    }

    /* Output #1

    doubleRandomNumber = 2.431392914284627

    randomNumber = 2

    */

Cuando lanzamos un doble a int, el valor int conserva solo la parte del número entero.

Por ejemplo, en el código anterior, doubleRandomNumberes 2.431392914284627. doubleRandomNumber la parte del número entero es 2 y la parte fraccionaria (números después del punto decimal) es 431392914284627. Por lo tanto, randomNumber solo contendrá la parte del número entero 2.

El uso Math.random() no es la única forma de generar números aleatorios en Java, se puede generar números aleatorios usando la clase Random.

Utilizar clase aleatoria para generar enteros

En la clase Random, hay muchos métodos de instancia que proporcionan números aleatorios. En esta sección, se considerarán dos métodos de instancia nextInt(int bound), y nextDouble().

Cómo utilizar el método nextInt (int bound)

nextInt(int bound) devuelve un número pseudoaleatorio de tipo int, mayor o igual a cero y menor que el valor límite.

El parámetro bound especifica el rango. Por ejemplo, si especificamos el límite como 4, nextInt(4) devolverá un valor de tipo int, mayor o igual a cero y menor que cuatro. 0,1,2,3 son los posibles resultados de nextInt(4).

Como se trata de un método de instancia, debemos crear un objeto aleatorio para acceder a este método de la siguiente forma:

    public static void main(String[] args) {

        // create Random object

        Random random = new Random();

        // generate random number from 0 to 3

        int number = random.nextInt(4);

        System.out.println(number);

    }

Cómo utilizar el método nextDouble ()

Similar a Math.random(), nextDouble() devuelve un número pseudoaleatorio de tipo doble, mayor o igual a cero y menor que uno.

    public static void main(String[] args) {

        // create Random object

        Random random = new Random();

        // generates random number from 0.0 and less than 1.0

        double number = random.nextDouble();

        System.out.println(number);

    }

Math.random() usa la clase aleatoria. Si solo queremos números pseudoaleatorios de tipo doble en nuestra aplicación, entonces podemos usar Math.random().

De lo contrario, podemos utilizar la clase al azar, ya que proporciona varios métodos para generar números pseudo-aleatorios en diferentes tipos, tales como nextInt(), nextLong(), nextFloat()y nextDouble().

Leíste: Cómo generar números enteros con Math Random en Java, te recomendamos: Cómo utilizar el método JavaScript Math.random ()

Te invitamos a que nos sigas en nuestras redes sociales: Facebook, Twitter, Instagram y Youtube con el perfil: @tortugacode