Generando números aleatorios en Java

Java proporciona tres formas de generar números aleatorios utilizando algunos métodos y clases integrados, como se indica a continuación:

  • clase java.util.Random
  • Método Math.random : puede generar números aleatorios de tipo doble.
  • Clase ThreadLocalRandom

1) java.util.Random

  • Para usar esta clase para generar números aleatorios, primero debemos crear una instancia de esta clase y luego invocar métodos como nextInt(), nextDouble(), nextLong(), etc. usando esa instancia.
  • Podemos generar números aleatorios de tipos enteros, flotantes, dobles, largos, booleanos usando esta clase.
  • Podemos pasar argumentos a los métodos para colocar un límite superior en el rango de los números que se generarán. Por ejemplo, nextInt(6) generará números en el rango de 0 a 5, ambos inclusive.
    • // A Java program to demonstrate random number generation
      // using java.util.Random;
      import java.util.Random;
        
      public class generateRandom{
        
          public static void main(String args[])
          {
              // create instance of Random class
              Random rand = new Random();
        
              // Generate random integers in range 0 to 999
              int rand_int1 = rand.nextInt(1000);
              int rand_int2 = rand.nextInt(1000);
        
              // Print random integers
              System.out.println("Random Integers: "+rand_int1);
              System.out.println("Random Integers: "+rand_int2);
        
              // Generate Random doubles
              double rand_dub1 = rand.nextDouble();
              double rand_dub2 = rand.nextDouble();
        
              // Print random doubles
              System.out.println("Random Doubles: "+rand_dub1);
              System.out.println("Random Doubles: "+rand_dub2);
          }
      }

      Producción:

Random Integers: 547
Random Integers: 126
Random Doubles: 0.8369779739988428
Random Doubles: 0.5497554388209912

 

2) Matemáticas.aleatoria()

La clase Math contiene varios métodos para realizar varias operaciones numéricas, como calcular exponenciaciones, logaritmos, etc. Uno de estos métodos es random(), este método devuelve un valor doble con un signo positivo, mayor o igual a 0.0 y menor a 1.0 . Los valores devueltos se eligen pseudoaleatoriamente. Este método solo puede generar números aleatorios de tipo Dobles. El siguiente programa explica cómo usar este método:

// Java program to demonstrate working of 
// Math.random() to generate random numbers
import java.util.*;
  
public class generateRandom
{
    public static void main(String args[])
    {
        // Generating random doubles
        System.out.println("Random doubles: " + Math.random());
        System.out.println("Random doubles: " + Math.random());
    }
}

Producción:

Random doubles: 0.13077348615666562
Random doubles: 0.09247016928442775

3) clase java.util.concurrent.ThreadLocalRandom

Esta clase se introdujo en Java 1.7 para generar números aleatorios de tipo enteros, dobles, booleanos, etc. El siguiente programa explica cómo usar esta clase para generar números aleatorios:

// Java program to demonstrate working of ThreadLocalRandom
// to generate random numbers.
import java.util.concurrent.ThreadLocalRandom;
  
public class generateRandom
{
    public static void main(String args[])
    {
        // Generate random integers in range 0 to 999
        int rand_int1 = ThreadLocalRandom.current().nextInt();
        int rand_int2 = ThreadLocalRandom.current().nextInt();
  
        // Print random integers
        System.out.println("Random Integers: " + rand_int1);
        System.out.println("Random Integers: " + rand_int2);
  
        // Generate Random doubles
        double rand_dub1 = ThreadLocalRandom.current().nextDouble();
        double rand_dub2 = ThreadLocalRandom.current().nextDouble();
  
        // Print random doubles
        System.out.println("Random Doubles: " + rand_dub1);
        System.out.println("Random Doubles: " + rand_dub2);
  
        // Generate random booleans
        boolean rand_bool1 = ThreadLocalRandom.current().nextBoolean();
        boolean rand_bool2 = ThreadLocalRandom.current().nextBoolean();
  
        // Print random Booleans
        System.out.println("Random Booleans: " + rand_bool1);
        System.out.println("Random Booleans: " + rand_bool2);
    }
}

Producción:

Random Integers: 536953314
Random Integers: 25905330
Random Doubles: 0.7504989954390163
Random Doubles: 0.7658597196204409
Random Booleans: false
Random Booleans: true

Referencias:
https://docs.oracle.com

Este artículo es una contribución de Harsh Agarwal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *