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