Numeros random en java

Numeros random en java

Numeros random en java

Número aleatorio java entre 1 y 100

El método Java Math.random()genera un número pseudoaleatorio entre 0,0 y 1,0. El número aleatorio resultante puede ser multiplicado para obtener un rango fuera de 0-1, y el resultado puede ser 0 pero siempre es menor que 1.

Cuando estás programando, a menudo hay situaciones en las que necesitas generar un número aleatorio. Por ejemplo, digamos que usted está operando una línea de cruceros. Puede que quieras generar un número aleatorio que se añada al final del pedido de un cliente y que se utilice como referencia de su reserva. O puede querer generar un número aleatorio para un juego de adivinanzas.

En este tutorial, vamos a recorrer el método más común utilizado para generar un número aleatorio en Java: Math.random(). También discutiremos un ejemplo paso a paso de cómo usar el método Math.random().

La clase Math de Java incluye una serie de características utilizadas para realizar funciones matemáticas sobre los números. Por ejemplo, la biblioteca Math incluye el método round() que se utiliza para redondear un número y el método pow() que se utiliza para calcular la potencia de un número.

Número aleatorio java entre 1000 y 9999

Muchas veces necesitas generar números aleatorios, enteros particulares en un rango pero desafortunadamente, JDK no proporciona un método simple como nextIntegerBetween(int minInclusive, int maxExclusive), debido a eso muchos programadores Java, particularmente los principiantes luchan para generar números aleatorios entre un rango, como enteros aleatorios entre 1 a 6 si estás creando un juego de dados, o un número aleatorio entre 1 a 52 si estás creando un juego de cartas, y necesitas elegir una carta aleatoria, o más comúnmente números aleatorios entre 1 a 10 y 1 a 100. Entonces, la pregunta viene, ¿cómo resolver este problema? ¿Cómo generar valores int aleatorios entre un rango? Bueno, necesitas hacer un poco de trabajo.

Aunque el JDK no proporciona una solución sencilla, proporciona todas las herramientas que necesitas para generar esos números aleatorios.    El soporte de números aleatorios existe desde JDK 1 a través del método Math.random() que devuelve un número aleatorio, aunque sea un valor de punto flotante, un doble entre 0 y 1.

Si eres bueno en matemáticas, puedes usar ese método para generar un número aleatorio entre cualquier rango, pero ese no es el mejor enfoque, particularmente si necesitas valores enteros y no el float o el double.

Cómo generar 10 números aleatorios en java

El método random() devuelve un valor doble con signo positivo, mayor o igual que 0,0 y menor que 1,0. Cuando se llama a Math.random(), bajo el capó, se crea y utiliza un objeto generador de números pseudoaleatorios java.util.Random.

El método getRandomIntegerBetweenRange() anterior produce un entero aleatorio entre el rango dado. Como el método Math.random() genera números aleatorios de tipo double, es necesario truncar la parte decimal y convertirla en int para obtener el número aleatorio entero. Puedes llamar a este método desde el método principal pasando los argumentos como se indica a continuación:

Java 8 introdujo un nuevo método, ints(), en la clase java.util.Random. El método ints() devuelve un flujo ilimitado de valores int pseudoaleatorios. Se pueden limitar los números aleatorios entre un rango especificado proporcionando los valores mínimo y máximo.

La clase java.util.Random implementa lo que generalmente se llama un generador lineal congruente (LCG). Está diseñado para ser rápido, pero no cumple con los requisitos de uso en tiempo real, como el uso en la generación de ID de sesión única en un servidor web, experimentos científicos, criptografía, o loterías y sorteos donde hay una apuesta monetaria. Para estos escenarios, hay otras alternativas, que cubriré en un post posterior.

Cómo generar números aleatorios en java dentro de un rango

Sin embargo, a la inversa, no hay forma de establecer explícitamente la semilla, por lo que puede ser difícil reproducir los resultados en situaciones en las que eso es útil, como las pruebas o el guardado de estados del juego o similares. En esas situaciones, se puede utilizar la técnica anterior a Java 1.7 que se muestra a continuación.

Sin embargo, esto sigue sin incluir el valor Max y se obtiene un valor doble. Para incluir el valor Max, necesitas añadir 1 a tu parámetro de rango (Max – Min) y luego truncar la parte decimal convirtiéndola en un int. Esto se consigue mediante:

ThreadLocalRandom equivalente a la clase java.util.Random para el entorno multihilo. La generación de un número aleatorio se realiza localmente en cada uno de los hilos. Así tenemos un mejor rendimiento al reducir los conflictos.

Se obtiene un número aleatorio entre 1 (inclusivo) y 11 (exclusivo), por lo que se inicializa el valor upperBound añadiendo 1. Por ejemplo, si quieres generar un número aleatorio entre 1 y 10 entonces inicializa el número upperBound con 11 en lugar de 10.

Acerca del autor

admin

Ver todos los artículos