CodeGym/Blog Java/Random-ES/Clase Java.util.Random
Autor
Jesse Haniel
Lead Software Architect at Tribunal de Justiça da Paraíba

Clase Java.util.Random

Publicado en el grupo Random-ES

¿Qué es la clase java.util.Random en Java?

La clase java.util.Random se utiliza para generar números pseudoaleatorios. Los métodos implementados por esta clase se utilizan para generar diferentes tipos de datos aleatorios, como int, double y float. Entonces, hay dos tipos principales de números aleatorios, números estadísticamente aleatorios y pseudoaleatorios . Los números estadísticamente aleatorios (como los números aleatorios simples en matemáticas), son un conjunto de valores que no tienen un patrón reconocible. Por ejemplo, lanzar un dado 10 veces generará un número aleatorio cada vez que no tenga ningún patrón reconocible.

¿Qué son los números pseudoaleatorios?

Es un conjunto de valores que son estadísticamente aleatorios pero tienen un punto de partida conocido . En Java, cada número pseudoaleatorio se produce a través de un algoritmo. Por lo general, un ciclo se repite cada vez que java.util.Random genera un número aleatorio. Un generador de números aleatorios en Java producirá números estadísticamente aleatorios pero con un punto de partida conocido, generado por un algoritmo. Eso hace que esos valores sean pseudoaleatorios.

¿La clase java.util.Random es criptográficamente insegura?

Es criptográficamente inseguro porque tiene algoritmos implementados para generar números aleatorios. Como resultado, una persona que sepa cómo funciona el algoritmo no tardará mucho en acceder a sus datos confidenciales. Entonces, si está trabajando con algunas aplicaciones de seguridad, necesita proteger algunos datos confidenciales o necesita generar contraseñas aleatorias, entonces es mejor evitar el uso de esta clase. Es útil en muchos casos, como generar un número aleatorio para su tirada de dados en ludo, juegos de azar, hacer un sorteo para un partido u otras áreas donde el resultado deseado es impredecible.

Declaración de método

Para usar los métodos de esta clase, primero debe importarlo desde el paquete como
import java.util.Random;
Después de importar, debe crear un objeto de esta clase como
Random randomNumbers = new Random();
Avanzando más, echemos un vistazo a diferentes ejemplos para usar la clase java.util.Random .

Ejemplo

import java.util.Random;

public class RandomClassExample1 {

	public static void main(String[] args) {

		// create random object
		Random randomNumbers = new Random();

		System.out.println("----------Random Boolean---------" );
		/*
		 * Returns the next pseudo random boolean value which
		 * may be used in a toss for a match
		 */
		boolean value = randomNumbers.nextBoolean();
		System.out.println("The random boolean value is: " + value);

		/*
		 * Returns the next pseudo random integer value between 0 and 5
		 * because if we use '6' then, it will give random numbers from 0 to 6
		 * hence incrementing it by 1 you can use it as a result of a dice roll
		 */
		System.out.println("\n----------Random Integer---------" );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );

		// return the next pseudo random long value
		Long val = randomNumbers.nextLong();
		System.out.println("\n----------Random Long---------" );
		System.out.println("Random Long value: " + val);

		/*
		 * Generates random bytes and puts them in an array, which you can for some
		 * desired unpredictable result that is summing all the values in the array
		 */

		System.out.println("\n----------Random Bytes---------" );
		byte[] bytes = new byte[8];
		randomNumbers.nextBytes(bytes);

		System.out.print("These are the random bytes = [ ");
		for (int i = 0; i < bytes.length; i++) {
			System.out.printf("%d ", bytes[i]);
		}
		System.out.println("]");
	}

}

Producción

----------Booleano aleatorio--------- El valor booleano aleatorio es: verdadero ----------Entero aleatorio--------- Tirada de dado: 4 Tirada de dado: 6 Tirada de dado: 1 Tirada de dado: 1 Tirada de dado: 3 ----------Aleatorio largo--------- Valor largo aleatorio: -6029959293504570824 ----------Bytes aleatorios--------- Estos son los bytes aleatorios = [-37 90 -98 -70 23 -111 19 108]

Métodos

Ahora discutiremos algunos de los métodos proporcionados por esta clase, teniendo en cuenta que randomNumbers es el objeto o instancia de nuestra clase.
  1. dobles() :

    Este método devuelve una serie infinita de valores dobles generados pseudoaleatoriamente. Ahora veamos cómo usar este método.

    randomNumbers.doubles();
  2. enteros() :

    Este método devuelve una serie infinita de valores enteros generados pseudoaleatoriamente. Puede usar el siguiente script para llamar a este método.

    randomNumbers.ints();
  3. largos() :

    Este método devuelve una serie infinita de valores largos generados pseudoaleatoriamente. El siguiente script se utiliza para llamar a este método.

    randomNumbers.longs();
  4. siguienteBooleano() :

    Este método devuelve el siguiente valor booleano pseudoaleatorio uniformemente distribuido de la secuencia del generador de números aleatorios. La distribución uniforme tiene forma rectangular, lo que significa que cada valor en la distribución tiene la misma probabilidad. Aquí se explica cómo utilizar este método.

    randomNumbers.nextBoolean();
  5. nextInt(int n) :

    Este método devuelve el siguiente valor entero pseudoaleatorio uniformemente distribuido de la secuencia del generador de números aleatorios entre 0 inclusive y el valor proporcionado exclusivo. Obtenga una vista rápida de cómo usar este método.

    randomNumbers.nextInt(10);

Conclusión

Esperamos que ahora comprenda qué es java.util.Random y cómo implementar sus diferentes métodos y en qué escenario usarlo. Siempre puedes usar esta clase en java. Siéntase libre de practicar y vuelva aquí cuando necesite más ayuda. ¡Feliz aprendizaje!
Comentarios
  • Populares
  • Nuevas
  • Antiguas
Debes iniciar sesión para dejar un comentario
Esta página aún no tiene comentarios